public class ACLProvider extends AbstractAccessControlProvider implements AccessControlConstants
Node is considered access controlled if an ACL has
been explicitly assigned to it by adding the mixin type
rep:AccessControllable and adding child node of type
rep:acl that forms the acl.Property item.Node that is not access controlled may inherit the ACL.
The ACL is inherited from the closest access controlled ancestor.Node has no effective ACL, in
which case some a default policy is returned that grants READ privilege to
any principal and denies all other privileges.for additional information.| Modifier and Type | Field and Description |
|---|---|
static String |
PARAM_ALLOW_UNKNOWN_PRINCIPALS
Constant for the name of the configuration option
allow-unknown-principals. |
observationMgr, PARAM_OMIT_DEFAULT_PERMISSIONS, privilegeManager, sessionN_ACCESSCONTROL, N_POLICY, N_REPO_POLICY, NT_REP_ACCESS_CONTROL, NT_REP_ACCESS_CONTROLLABLE, NT_REP_ACE, NT_REP_ACL, NT_REP_DENY_ACE, NT_REP_GRANT_ACE, NT_REP_PRINCIPAL_ACCESS_CONTROL, NT_REP_REPO_ACCESS_CONTROLLABLE, P_GLOB, P_PRINCIPAL_NAME, P_PRIVILEGES| Constructor and Description |
|---|
ACLProvider() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canAccessRoot(Set<Principal> principals)
Returns
true if the given set of principals can access the
root node of the workspace this provider has been built for;
false otherwise. |
void |
close()
Closes this provider when it is no longer used by the respective
workspace and release resources bound by this provider.
|
CompiledPermissions |
compilePermissions(Set<Principal> principals)
Compiles the effective policy for the specified set of
Principals. |
protected EntryCollector |
createEntryCollector(SessionImpl systemSession)
Create the
EntryCollector instance that is used by this
provider to gather the effective ACEs for a given list of principals at a
given node during AC evaluation. |
AccessControlEditor |
getEditor(Session session)
Returns an
AccessControlEditor for the given Session object
or null if the implementation does not support editing
of access control policies. |
AccessControlPolicy[] |
getEffectivePolicies(Path absPath,
CompiledPermissions permissions)
Returns the effective policies for the node at the given absPath.
|
AccessControlPolicy[] |
getEffectivePolicies(Set<Principal> principals,
CompiledPermissions permissions)
Returns the effective policies for the given principals.
|
void |
init(Session systemSession,
Map configuration)
Tests if the given
systemSession is a SessionImpl and
retrieves the observation manager. |
checkInitialized, getAdminPermissions, getPrivilegeManagerImpl, getReadOnlyPermissions, isAcItem, isAcItem, isAdminOrSystem, isLive, isReadOnlypublic static final String PARAM_ALLOW_UNKNOWN_PRINCIPALS
allow-unknown-principals.
The option is a flag indicating whether access control entries with principals not known to the system
can be added to an ACL. the default is false.
Please note that the current implementation does only check principal existence when adding a new access
control entry, but does not validate all ACEs when removing a principal. So even if this flag is false,
it's possible to create an ACL with a unknown principal.
public void init(Session systemSession, Map configuration) throws RepositoryException
AbstractAccessControlProvidersystemSession is a SessionImpl and
retrieves the observation manager. The it sets the internal 'initialized'
field to true.init in interface AccessControlProviderinit in class AbstractAccessControlProvidersystemSession - System session.configuration - Configuration used to initialize this provider.RepositoryException - If the specified session is not a
SessionImpl or if retrieving the observation manager fails.AccessControlProvider.init(Session, Map)public void close()
AccessControlProviderclose in interface AccessControlProviderclose in class AbstractAccessControlProviderAccessControlProvider.close()public AccessControlPolicy[] getEffectivePolicies(Path absPath, CompiledPermissions permissions) throws ItemNotFoundException, RepositoryException
AccessControlProvidergetEffectivePolicies in interface AccessControlProviderabsPath - an absolute path.permissions - The effective permissions of the editing
sessions that attempts to view the effective policies.absPath or
an empty array if the implementation cannot determine the effective
policy at the given path.ItemNotFoundException - If no Node with the specified
absPath exists.RepositoryException - If another error occurs.AccessControlProvider.getEffectivePolicies(org.apache.jackrabbit.spi.Path,org.apache.jackrabbit.core.security.authorization.CompiledPermissions)public AccessControlPolicy[] getEffectivePolicies(Set<Principal> principals, CompiledPermissions permissions) throws RepositoryException
AccessControlProvidergetEffectivePolicies in interface AccessControlProviderprincipals - A set of principal.permissions - The effective permissions of the editing
sessions that attempts to view the effective policies. @return The effective policies that are in effect for the given
principal or an empty array.RepositoryException - If error occurs.AccessControlProvider.getEffectivePolicies(java.util.Set, CompiledPermissions)public AccessControlEditor getEditor(Session session)
AccessControlProviderAccessControlEditor for the given Session object
or null if the implementation does not support editing
of access control policies.getEditor in interface AccessControlProvidersession - The editing session.null.AccessControlProvider.getEditor(Session)public CompiledPermissions compilePermissions(Set<Principal> principals) throws RepositoryException
AccessControlProviderPrincipals.compilePermissions in interface AccessControlProviderprincipals - Set of principals to compile the permissions for. If
the order of evaluating permissions for principals is meaningful, the
caller should pass a Set that respects the order of insertion.RepositoryException - If an error occurs.AccessControlProvider.compilePermissions(Set)public boolean canAccessRoot(Set<Principal> principals) throws RepositoryException
AccessControlProvidertrue if the given set of principals can access the
root node of the workspace this provider has been built for;
false otherwise.canAccessRoot in interface AccessControlProviderprincipals - Set of principals to be tested for being allowed to
access the root node.true if the given set of principals can access the
root node of the workspace this provider has been built for;
false otherwise.RepositoryException - If an error occurs.AccessControlProvider.canAccessRoot(Set)protected EntryCollector createEntryCollector(SessionImpl systemSession) throws RepositoryException
EntryCollector instance that is used by this
provider to gather the effective ACEs for a given list of principals at a
given node during AC evaluation.systemSession - The system session to create the entry collector for.CachingEntryCollector.RepositoryException - If an error occurs.Copyright © 2004–2020 The Apache Software Foundation. All rights reserved.