diff doc/Architecture/auth-classes.uml @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/Architecture/auth-classes.uml	Tue Sep 08 17:00:21 2015 +0200
@@ -0,0 +1,377 @@
+@startuml
+
+' definitions
+' -----------
+
+' package "edu.harvard.iq.dataverse.authorization"
+class AccessRequest
+class ApiKey
+class AuthenticatedUser
+class AuthenticatedUserLookup
+class AuthenticationManager
+interface AuthenticationProvider
+class DataverseRole
+class GuestUser
+class LocalAuthenticationProvider
+enum Permission
+interface RoleAssignee
+class RoleAssigneeDisplayInfo
+class ShibAuthenticationProvider
+interface User
+interface UserLister
+class UserRoleAssignments
+class Permission
+' end package
+
+' package "edu.harvard.iq.dataverse.engine.command.impl"
+class AssignRoleCommand
+class CreateRoleCommand
+' end package
+
+' package "edu.harvard.iq.dataverse.authorization.providers.shib"
+class ShibGroup
+' end package
+
+' package "edu.harvard.iq.dataverse.engine.command"
+interface Command
+abstract AbstractCommand
+' end package
+
+' package "edu.harvard.iq.dataverse.authorization.groups.impl"
+abstract AbstractGroup
+class AllUsers
+class AuthenticatedUsers
+class ExplicitGroup
+class ExplicitGroupCreator
+' end package
+
+' package "edu.harvard.iq.dataverse"
+class DataverseUser
+abstract DvObject
+interface Visitor
+class RoleAssignment
+' end package
+
+' package "edu.harvard.iq.dataverse.authorization.providers.ipaddress"
+class IpGroup
+' end package
+
+' package "edu.harvard.iq.dataverse.authorization.groups"
+interface Group
+interface GroupCreator
+class GroupException
+class GroupRow
+' end package
+
+' content
+' -------
+
+' Command:
+Command : Object execute(CommandContext)
+Command : Map getAffectedDvObjects()
+Command : User getUser()
+
+' UserLister:
+UserLister : List listUsers()
+
+' RoleAssignment:
+RoleAssignment --> "1" DataverseUser
+RoleAssignment --> "1" DataverseRole
+RoleAssignment --> "1" DvObject
+RoleAssignment : Long getId()
+RoleAssignment : void setId(Long)
+RoleAssignment : DataverseUser getUser()
+RoleAssignment : void setUser(DataverseUser)
+RoleAssignment : DataverseRole getRole()
+RoleAssignment : void setRole(DataverseRole)
+RoleAssignment : DvObject getDefinitionPoint()
+RoleAssignment : void setDefinitionPoint(DvObject)
+RoleAssignment : int hashCode()
+RoleAssignment : boolean equals(Object)
+RoleAssignment : String toString()
+
+' ExplicitGroup:
+Group <|.. ExplicitGroup
+ExplicitGroup --> "1" ExplicitGroupCreator
+ExplicitGroup : void add(User)
+ExplicitGroup : void add(Group)
+ExplicitGroup : void remove(RoleAssignee)
+ExplicitGroup : String getAlias()
+ExplicitGroup : String getName()
+ExplicitGroup : String getDescription()
+ExplicitGroup : boolean contains(User, ServletRequest)
+ExplicitGroup : boolean isEditable()
+ExplicitGroup : GroupCreator getCreator()
+ExplicitGroup : Set getDirectSubGroups()
+ExplicitGroup : String getIdentifier()
+ExplicitGroup : RoleAssigneeDisplayInfo getDisplayInfo()
+
+' AllUsers:
+AbstractGroup <|-- AllUsers
+AllUsers : boolean contains(User, ServletRequest)
+AllUsers : boolean isEditable()
+AllUsers : GroupCreator getCreator()
+AllUsers : String getIdentifier()
+AllUsers : RoleAssigneeDisplayInfo getDisplayInfo()
+
+' GroupCreator:
+GroupCreator : Group createGroup()
+
+' AbstractCommand:
+Command <|.. AbstractCommand
+AbstractCommand --> "1" User
+AbstractCommand : Map getAffectedDvObjects()
+AbstractCommand : User getUser()
+
+' AuthenticationManager:
+AuthenticationManager --> "1" AuthenticationManager
+AuthenticationManager : AuthenticationManager getInstance()
+AuthenticationManager : void registerProvider(AuthenticationProvider)
+AuthenticationManager : Collection getAuthenticationProviders()
+
+' AuthenticatedUsers:
+AbstractGroup <|-- AuthenticatedUsers
+AuthenticatedUsers : boolean contains(User, ServletRequest)
+AuthenticatedUsers : boolean isEditable()
+AuthenticatedUsers : GroupCreator getCreator()
+AuthenticatedUsers : String getIdentifier()
+AuthenticatedUsers : RoleAssigneeDisplayInfo getDisplayInfo()
+
+' CreateRoleCommand:
+AbstractCommand <|-- CreateRoleCommand
+CreateRoleCommand --> "1" DataverseRole
+CreateRoleCommand : DataverseRole execute(CommandContext)
+
+' LocalAuthenticationProvider:
+AuthenticationProvider <|.. LocalAuthenticationProvider
+UserLister <|.. LocalAuthenticationProvider
+GroupCreator <|.. LocalAuthenticationProvider
+LocalAuthenticationProvider --> "1" RoleAssignee
+LocalAuthenticationProvider : RoleAssignee getRoleAssignee(String)
+LocalAuthenticationProvider : List listUsers()
+LocalAuthenticationProvider : Group createGroup()
+
+' User:
+RoleAssignee <|.. User
+User : String IDENTIFIER_PREFIX
+
+' Group:
+RoleAssignee <|.. Group
+Group : String getAlias()
+Group : String getName()
+Group : String getDescription()
+Group : boolean contains(User, ServletRequest)
+Group : boolean isEditable()
+Group : GroupCreator getCreator()
+Group : Set getDirectSubGroups()
+
+' Permission:
+
+' GroupException:
+GroupException --> "1" Group
+GroupException : Group getGroup()
+GroupException : String toString()
+
+' GroupRow:
+
+' DvObject:
+DvObject : DvObject.Visitor NamePrinter
+DvObject --> "1" Visitor
+DvObject --> "1" DataverseUser
+DvObject : DvObjectContainer getOwner()
+DvObject : Long getId()
+DvObject : void setId(Long)
+DvObject : Timestamp getPublicationDate()
+DvObject : void setPublicationDate(Timestamp)
+DvObject : String getReleaseUserIdentifier()
+DvObject : void setReleaseUserIdentifier(String)
+DvObject : boolean isReleased()
+DvObject : Timestamp getCreateDate()
+DvObject : void setCreateDate(Timestamp)
+DvObject : DataverseUser getCreator()
+DvObject : void setCreator(DataverseUser)
+DvObject : Object accept(DvObject.Visitor)
+DvObject : int hashCode()
+DvObject : boolean equals(Object)
+DvObject : String toString()
+
+' ExplicitGroupCreator:
+GroupCreator <|.. ExplicitGroupCreator
+ExplicitGroupCreator : ExplicitGroup createGroup()
+ExplicitGroupCreator : Group getGroup(String)
+
+' AbstractGroup:
+Group <|.. AbstractGroup
+AbstractGroup : String getAlias()
+AbstractGroup : String getName()
+AbstractGroup : String getDescription()
+AbstractGroup : Set getDirectSubGroups()
+AbstractGroup : RoleAssigneeDisplayInfo getDisplayInfo()
+
+' Visitor:
+Visitor : Object visit(Dataverse)
+Visitor : Object visit(Dataset)
+Visitor : Object visit(DataFile)
+
+' AuthenticatedUser:
+User <|.. AuthenticatedUser
+AuthenticatedUser : String getIdentifier()
+AuthenticatedUser : RoleAssigneeDisplayInfo getDisplayInfo()
+
+' ApiKey:
+ApiKey --> "1" AuthenticatedUser
+ApiKey : Long getId()
+ApiKey : void setId(Long)
+ApiKey : String getKey()
+ApiKey : void setKey(String)
+ApiKey : AuthenticatedUser getAuthenticatedUser()
+ApiKey : boolean isDisabled()
+ApiKey : Timestamp getCreateTime()
+ApiKey : Timestamp getExpireTime()
+
+' AssignRoleCommand:
+AbstractCommand <|-- AssignRoleCommand
+AssignRoleCommand --> "1" DataverseRole
+AssignRoleCommand --> "1" RoleAssignee
+AssignRoleCommand --> "1" DvObject
+AssignRoleCommand : RoleAssignment execute(CommandContext)
+
+' UserRoleAssignments:
+UserRoleAssignments --> "1" User
+UserRoleAssignments : void add(Iterable)
+UserRoleAssignments : void add(RoleAssignment)
+UserRoleAssignments : Set getPermissions()
+UserRoleAssignments : User getUser()
+UserRoleAssignments : Set getAssignments()
+UserRoleAssignments : Iterator iterator()
+UserRoleAssignments : boolean isEmpty()
+
+' RoleAssignee:
+RoleAssignee : String getIdentifier()
+RoleAssignee : RoleAssigneeDisplayInfo getDisplayInfo()
+
+' ShibGroup:
+AbstractGroup <|-- ShibGroup
+ShibGroup : Map getHeaderMatches()
+ShibGroup : boolean contains(User, ServletRequest)
+ShibGroup : boolean isEditable()
+ShibGroup : GroupCreator getCreator()
+ShibGroup : String getIdentifier()
+
+' DataverseUser:
+DataverseUser : Long getId()
+DataverseUser : void setId(Long)
+DataverseUser : String getUserName()
+DataverseUser : void setUserName(String)
+DataverseUser : String getEmail()
+DataverseUser : void setEmail(String)
+DataverseUser : String getFirstName()
+DataverseUser : void setFirstName(String)
+DataverseUser : String getLastName()
+DataverseUser : void setLastName(String)
+DataverseUser : String getEncryptedPassword()
+DataverseUser : void setEncryptedPassword(String)
+DataverseUser : String getAffiliation()
+DataverseUser : void setAffiliation(String)
+DataverseUser : String getPosition()
+DataverseUser : void setPosition(String)
+DataverseUser : boolean isGuest()
+DataverseUser : List getDatasetDataverseUsers()
+DataverseUser : void setDatasetDataverseUsers(List)
+DataverseUser : List getDatasetLocks()
+DataverseUser : void setDatasetLocks(List)
+DataverseUser : String getDisplayName()
+DataverseUser : int hashCode()
+DataverseUser : boolean equals(Object)
+DataverseUser : String toString()
+
+' GuestUser:
+User <|.. GuestUser
+GuestUser --> "1" GuestUser
+GuestUser : GuestUser get()
+GuestUser : String getIdentifier()
+GuestUser : RoleAssigneeDisplayInfo getDisplayInfo()
+
+' AccessRequest:
+AccessRequest --> "1" AuthenticatedUser
+AccessRequest --> "1" DvObject
+AccessRequest : AuthenticatedUser getAuthenticatedUser()
+AccessRequest : DvObject getDvObject()
+
+' AuthenticationProvider:
+AuthenticationProvider : RoleAssignee getRoleAssignee(String)
+
+' AuthenticatedUserLookup:
+AuthenticatedUserLookup --> "1" AuthenticatedUser
+AuthenticatedUserLookup : String getPersistentUserIdFromIdp()
+AuthenticatedUserLookup : AuthenticatedUser getAuthenticatedUser()
+AuthenticatedUserLookup : String getIdp()
+
+' RoleAssigneeDisplayInfo:
+RoleAssigneeDisplayInfo : String getTitle()
+RoleAssigneeDisplayInfo : String getEmailAddress()
+RoleAssigneeDisplayInfo : String getAffiliation()
+
+' Permission:
+Permission : Permission Discover
+Permission : Permission Download
+Permission : Permission AccessUnpublishedContent
+Permission : Permission AccessRestrictedMetadata
+Permission : Permission UndoableEdit
+Permission : Permission DestructiveEdit
+Permission : Permission EditMetadata
+Permission : Permission AddDataverse
+Permission : Permission AddDataset
+Permission : Permission AddDatasetVersion
+Permission : Permission ChooseTemplate
+Permission : Permission ChooseFacets
+Permission : Permission Publish
+Permission : Permission Style
+Permission : Permission GrantPermissions
+Permission : Permission Tracking
+Permission : Permission CreateTemplates
+Permission : Permission RestrictFile
+Permission : Permission RestrictMetadata
+Permission : Permission values()
+Permission : Permission valueOf(String)
+Permission : String getHumanName()
+Permission : boolean appliesTo(Class)
+
+' DataverseRole:
+DataverseRole : Comparator CMP_BY_NAME
+DataverseRole --> "1" DvObject
+DataverseRole : Set permissionSet(Iterable)
+DataverseRole : Long getId()
+DataverseRole : void setId(Long)
+DataverseRole : String getName()
+DataverseRole : void setName(String)
+DataverseRole : String getDescription()
+DataverseRole : void setDescription(String)
+DataverseRole : String getAlias()
+DataverseRole : void setAlias(String)
+DataverseRole : DvObject getOwner()
+DataverseRole : void setOwner(DvObject)
+DataverseRole : void addPermissions(Collection)
+DataverseRole : void addPermission(Permission)
+DataverseRole : void clearPermissions()
+DataverseRole : Set permissions()
+DataverseRole : long getPermissionsBits()
+DataverseRole : String toString()
+DataverseRole : int hashCode()
+DataverseRole : boolean equals(Object)
+
+' ShibAuthenticationProvider:
+AuthenticationProvider <|.. ShibAuthenticationProvider
+GroupCreator <|.. ShibAuthenticationProvider
+ShibAuthenticationProvider --> "1" RoleAssignee
+ShibAuthenticationProvider : RoleAssignee getRoleAssignee(String)
+ShibAuthenticationProvider : Group createGroup()
+
+' IpGroup:
+AbstractGroup <|-- IpGroup
+IpGroup : boolean contains(User, ServletRequest)
+IpGroup : boolean isEditable()
+IpGroup : GroupCreator getCreator()
+IpGroup : String getIdentifier()
+
+@enduml