public interface AccessControlProviderFactory
AccessControlProviderFactory
is used to create
AccessControlProvider
s for the various workspaces present in the
repository. If a provider is no longer used by the workspace, it is
closed
.
The factory does not need to cache the created AccessControlProvider
s.
They are used during the entire lifetime of their workspace, and are cached
together with the respective workspace related objects by the repository
implementation.
The AccessControlProvider
s are requested using a
system Session
. The system sessions have a distinct access
control rules in order to prevent chicken-egg problems when setting up
security for a workspace.
Modifier and Type | Method and Description |
---|---|
void |
close()
Dispose this
AccessControlProviderFactory and its resources. |
AccessControlProvider |
createProvider(Session systemSession,
WorkspaceSecurityConfig config)
Creates an AccessControlProvider for the workspace of the given
system session.
|
void |
init(Session securitySession)
Initialize this factory.
|
void init(Session securitySession) throws RepositoryException
securitySession
- Security Session.RepositoryException
- If an error occurs.void close() throws RepositoryException
AccessControlProviderFactory
and its resources.RepositoryException
- if an error occurs.AccessControlProvider createProvider(Session systemSession, WorkspaceSecurityConfig config) throws RepositoryException
null
or
does not have a provider entry, this factory must create a default
provider. In any case the provider must be initialized before it
is returned to the caller.systemSession
- the system session for the workspace the
AccessControlProvider
should be created for.config
- The security configuration for that workspace or
null
if no config entry is present. In this case the
factory must use its default. The configuration is used to determine
the implementation of AccessControlProvider
to be used
and to retrieve eventual configuration parameters.RepositoryException
- if an error occursCopyright © 2004–2024 The Apache Software Foundation. All rights reserved.