public class DafAccessControlManager extends java.lang.Object implements AccessControlManager, RegionManager, java.io.Closeable
Modifier and Type | Field and Description |
---|---|
protected java.util.HashMap<SystemObject,AccessControlUnit> |
_authenticationClassHashMap
Map, die Berechtigungsklassen den kapselnden AccessControlUnit-Klassen zuordnet
|
protected ClientDavInterface |
_connection
Datenverteilerverbindung
|
protected static de.bsvrz.sys.funclib.debug.Debug |
_debug
Debug
|
protected boolean |
_isUsingNewDataModel
Ob das neue Datenmodell (siehe
ExtendedUserInfo ) benutzt wird |
protected java.util.HashMap<SystemObject,Region> |
_regionHashMap
Map, die Regionen den kapselnden Region-Klassen zuordnet
|
protected java.util.HashMap<SystemObject,Role> |
_roleHashMap
Map, die Rollen den kapselnden Role-Klassen zuordnet
|
protected boolean |
_useImplicitUserManagement
Ob implizite Benutzerverwaltung durchgeführt wird, oder Benutzer mit addUser erstellt werden müssen
|
protected java.util.HashMap<java.lang.Long,UserInfoInternal> |
_userInfoHashMap
Map, die BenutzerIds den Benutzerobjekten zuordnet
|
protected java.util.concurrent.locks.ReentrantReadWriteLock |
_userMapLock
Lock-Objekt für
_userInfoHashMap |
Constructor and Description |
---|
DafAccessControlManager(boolean useNewDataModel,
ClientDavInterface connection,
boolean useImplicitUserManagement) |
Modifier and Type | Method and Description |
---|---|
void |
addChangeListener(AccessControlChangeListener listener)
Meldet einen Listener auf geänderte Nutzerrechte an
|
void |
addUser(long userId)
Fügt eine Benutzerinformation zu der Benutzertabelle hinzu, wenn der Datenverteiler die Benutzerrechte prüfen soll.
|
void |
close() |
AccessControlUnit |
getAuthenticationClass(SystemObject systemObject)
Gibt die AuthenticationClass-Klasse zurück die zu dem angeforderten Systemobjekt gehört.
|
Region |
getRegion(SystemObject systemObject)
Gibt die Region-Klasse zurück die zu dem angeforderten Systemobjekt gehört.
|
Role |
getRole(SystemObject systemObject)
Gibt die Role-Klasse zurück die zu dem angeforderten Systemobjekt gehört.
|
java.lang.Object |
getUpdateLock()
Um immer einen konsistenten Zustand zu haben, darf immer nur ein DataLoader gleichzeitig pro AccessControlManager geupdatet werden.
|
UserInfo |
getUserPermissions()
Gibt die Benutzerrechte zum aktuell angemeldeten Benutzer zurück.
|
UserInfo |
getUserPermissions(long userId)
Gibt das gespeicherte BenutzerObjekt mit der angegebenen ID zurück
|
boolean |
isUsingNewDataModel()
Fragt ab, ob das neue Datenmodell benutzt wird.
|
void |
notifyInfiniteRecursion(DataLoader node,
DataLoader parent,
java.util.List<DataLoader> trace)
Wird aufgerufen, wenn eine Rekursion in den Systemobjekten gefunden wurde.
|
void |
objectChanged(DataLoader object)
Wird aufgerufen un dem AccessControlManager zu informieren, dass ein verwaltetes Objekt sich geändert hat.
|
void |
removeChangeListener(AccessControlChangeListener listener)
Entfernt einen Listener auf geänderte Benutzerrechte
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getUserPermissions, getUserPermissions
protected static final de.bsvrz.sys.funclib.debug.Debug _debug
protected final java.util.HashMap<java.lang.Long,UserInfoInternal> _userInfoHashMap
protected final java.util.HashMap<SystemObject,AccessControlUnit> _authenticationClassHashMap
protected final java.util.HashMap<SystemObject,Role> _roleHashMap
protected final java.util.HashMap<SystemObject,Region> _regionHashMap
protected final ClientDavInterface _connection
protected final boolean _isUsingNewDataModel
ExtendedUserInfo
) benutzt wirdprotected final boolean _useImplicitUserManagement
protected final java.util.concurrent.locks.ReentrantReadWriteLock _userMapLock
_userInfoHashMap
public DafAccessControlManager(boolean useNewDataModel, ClientDavInterface connection, boolean useImplicitUserManagement)
public void addChangeListener(AccessControlChangeListener listener)
AccessControlManager
addChangeListener
in interface AccessControlManager
listener
- Listenerpublic void removeChangeListener(AccessControlChangeListener listener)
AccessControlManager
removeChangeListener
in interface AccessControlManager
listener
- Listenerpublic void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
public final void addUser(long userId)
userId
- BenutzerIDpublic boolean isUsingNewDataModel()
public void notifyInfiniteRecursion(DataLoader node, DataLoader parent, java.util.List<DataLoader> trace)
node
- Der Knoten, der sich selbst referenziertparent
- Der Knoten, der den problematischen Knoten referenzierttrace
- Komplette Hierarchie vom Benutzer zum problematischen Objekt.public AccessControlUnit getAuthenticationClass(SystemObject systemObject)
systemObject
- Systemobjekt, das eine Berechtigungsklasse repräsentiertpublic Region getRegion(SystemObject systemObject)
getRegion
in interface RegionManager
systemObject
- Systemobjekt, das eine Region repräsentiertpublic Role getRole(SystemObject systemObject)
systemObject
- Systemobjekt, das eine Rolle repräsentiertpublic UserInfo getUserPermissions(long userId)
getUserPermissions
in interface AccessControlManager
userId
- Angegebene BenutzerIdpublic UserInfo getUserPermissions()
AccessControlManager
getUserPermissions
in interface AccessControlManager
public java.lang.Object getUpdateLock()
getUpdateLock
in interface RegionManager
public void objectChanged(DataLoader object)
objectChanged
in interface RegionManager
object
- Objekt das sich geändert hat