Class AbstractAccessControlProvider
- java.lang.Object
-
- com.devonfw.module.security.common.base.accesscontrol.AbstractAccessControlProvider
-
- All Implemented Interfaces:
AccessControlProvider
- Direct Known Subclasses:
AccessControlConfig,AccessControlProviderImpl
public abstract class AbstractAccessControlProvider extends Object implements AccessControlProvider
This is the abstract base implementation ofAccessControlProvider.
ATTENTION:
You need to callinitialize(AccessControlSchema)from the derived implementation.
-
-
Constructor Summary
Constructors Constructor Description AbstractAccessControlProvider()The constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddAccessControl(AccessControl accessControl)Registers the givenAccessControland may be used for configuration of access controls during bootstrapping.protected voidcheckForCyclicDependencies(AccessControlGroup group, List<AccessControlGroup> groupList)Checks that the givenAccessControlGrouphas no cyclicinheritance graph.booleancollectAccessControlIds(String groupId, Set<String> permissions)This method collects theIDsof allAccessControlPermissions (or more precisely of allAccessControls) contained in theAccessControlidentifiedby the givengroupId.protected voidcollectAccessControls(AccessControlGroup group, Set<AccessControlGroup> toplevelGroups)Called frominitialize(AccessControlSchema)to collect allAccessControls recursively.booleancollectAccessControls(String groupId, Set<AccessControl> permissions)This method collects theAccessControls contained in theAccessControlidentifiedby the givengroupId.voidcollectPermissionIds(AccessControlGroup group, Set<String> permissions)Recursive implementation ofcollectAccessControlIds(String, Set)forAccessControlGroups.voidcollectPermissionNodes(AccessControlGroup group, Set<AccessControl> permissions)Recursive implementation ofcollectAccessControls(String, Set)forAccessControlGroups.AccessControlgetAccessControl(String nodeId)protected voidinitialize(AccessControlSchema config)Performs the required initialization of this class.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.devonfw.module.security.common.api.accesscontrol.AccessControlProvider
expandPermissions
-
-
-
-
Method Detail
-
initialize
protected void initialize(AccessControlSchema config)
Performs the required initialization of this class.- Parameters:
config- is theAccessControlSchema.
-
checkForCyclicDependencies
protected void checkForCyclicDependencies(AccessControlGroup group, List<AccessControlGroup> groupList)
Checks that the givenAccessControlGrouphas no cyclicinheritance graph.- Parameters:
group- is theAccessControlGroupto check.groupList- theListof visitedAccessControlGroups used to detect cycles.
-
collectAccessControls
protected void collectAccessControls(AccessControlGroup group, Set<AccessControlGroup> toplevelGroups)
Called frominitialize(AccessControlSchema)to collect allAccessControls recursively.- Parameters:
group- theAccessControlGroupto traverse.toplevelGroups- is theSetof allAccessControlGroups fromAccessControlSchema.getGroups().
-
getAccessControl
public AccessControl getAccessControl(String nodeId)
- Specified by:
getAccessControlin interfaceAccessControlProvider- Parameters:
nodeId- is theIDof the requestedAccessControl.- Returns:
- the requested
AccessControlornullif not found.
-
addAccessControl
protected void addAccessControl(AccessControl accessControl)
Registers the givenAccessControland may be used for configuration of access controls during bootstrapping. This method should not be used after the application startup (bootstrapping) has completed.- Parameters:
accessControl- theAccessControlto register.
-
collectAccessControlIds
public boolean collectAccessControlIds(String groupId, Set<String> permissions)
Description copied from interface:AccessControlProviderThis method collects theIDsof allAccessControlPermissions (or more precisely of allAccessControls) contained in theAccessControlidentifiedby the givengroupId.- Specified by:
collectAccessControlIdsin interfaceAccessControlProvider- Parameters:
groupId- is theIDof theAccessControl(typically anAccessControlGroup) to collect.permissions- is theSetwhere toaddthe collectedIDs. This will include the givengroupId.- Returns:
trueif the givengroupIdhas been found,falseotherwise.- See Also:
AccessControlProvider.collectAccessControls(String, Set)
-
collectPermissionIds
public void collectPermissionIds(AccessControlGroup group, Set<String> permissions)
Recursive implementation ofcollectAccessControlIds(String, Set)forAccessControlGroups.- Parameters:
group- is theAccessControlGroupto traverse.permissions- is theSetused to collect.
-
collectAccessControls
public boolean collectAccessControls(String groupId, Set<AccessControl> permissions)
Description copied from interface:AccessControlProviderThis method collects theAccessControls contained in theAccessControlidentifiedby the givengroupId.- Specified by:
collectAccessControlsin interfaceAccessControlProvider- Parameters:
groupId- is theIDof theAccessControl(typically anAccessControlGroup) to collect.permissions- is theSetwhere toaddthe collectedAccessControls. This will include theAccessControlidentifiedby the givengroupId.- Returns:
trueif the givengroupIdhas been found,falseotherwise.
-
collectPermissionNodes
public void collectPermissionNodes(AccessControlGroup group, Set<AccessControl> permissions)
Recursive implementation ofcollectAccessControls(String, Set)forAccessControlGroups.- Parameters:
group- is theAccessControlGroupto traverse.permissions- is theSetused to collect.
-
-