Class CompositePrincipalConfiguration
- java.lang.Object
-
- org.apache.jackrabbit.oak.spi.security.CompositeConfiguration<PrincipalConfiguration>
-
- org.apache.jackrabbit.oak.spi.security.principal.CompositePrincipalConfiguration
-
- All Implemented Interfaces:
PrincipalConfiguration
,SecurityConfiguration
public class CompositePrincipalConfiguration extends CompositeConfiguration<PrincipalConfiguration> implements PrincipalConfiguration
PrincipalConfiguration
that combines different principal provider implementations that share a common principal manager implementation.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.jackrabbit.oak.spi.security.SecurityConfiguration
SecurityConfiguration.Default
-
-
Field Summary
-
Fields inherited from class org.apache.jackrabbit.oak.spi.security.CompositeConfiguration
PARAM_RANKING
-
Fields inherited from interface org.apache.jackrabbit.oak.spi.security.principal.PrincipalConfiguration
NAME
-
-
Constructor Summary
Constructors Constructor Description CompositePrincipalConfiguration()
CompositePrincipalConfiguration(@NotNull SecurityProvider securityProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull PrincipalManager
getPrincipalManager(Root root, NamePathMapper namePathMapper)
Returns an instance ofPrincipalManager
that can be used to query and retrieve principals such as needed for JCR access control management.@NotNull PrincipalProvider
getPrincipalProvider(Root root, NamePathMapper namePathMapper)
Returns an instance of the OAKPrincipalProvider
.-
Methods inherited from class org.apache.jackrabbit.oak.spi.security.CompositeConfiguration
addConfiguration, addConfiguration, getCommitHooks, getConfigurations, getConflictHandlers, getContext, getDefaultConfig, getMonitors, getName, getParameters, getProtectedItemImporters, getRepositoryInitializer, getValidators, getWorkspaceInitializer, removeConfiguration, setDefaultConfig, setRootProvider, setSecurityProvider, setTreeProvider
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.jackrabbit.oak.spi.security.SecurityConfiguration
getCommitHooks, getConflictHandlers, getContext, getMonitors, getName, getParameters, getProtectedItemImporters, getRepositoryInitializer, getValidators, getWorkspaceInitializer
-
-
-
-
Constructor Detail
-
CompositePrincipalConfiguration
public CompositePrincipalConfiguration()
-
CompositePrincipalConfiguration
public CompositePrincipalConfiguration(@NotNull @NotNull SecurityProvider securityProvider)
-
-
Method Detail
-
getPrincipalManager
@NotNull public @NotNull PrincipalManager getPrincipalManager(Root root, NamePathMapper namePathMapper)
Description copied from interface:PrincipalConfiguration
Returns an instance ofPrincipalManager
that can be used to query and retrieve principals such as needed for JCR access control management.- Specified by:
getPrincipalManager
in interfacePrincipalConfiguration
- Parameters:
root
- The target root.namePathMapper
- TheNamePathMapper
to be used.- Returns:
- An instance of
PrincipalManager
. - See Also:
JackrabbitSession.getPrincipalManager()
-
getPrincipalProvider
@NotNull public @NotNull PrincipalProvider getPrincipalProvider(Root root, NamePathMapper namePathMapper)
Description copied from interface:PrincipalConfiguration
Returns an instance of the OAKPrincipalProvider
.Backwards compatibility with Jackrabbit 2.x
Configuration of Principal Providers
In Jackrabbit 2.x the configuration of principal providers was tied to the LoginModule configuration and thus mixing authentication concerns with the principal management. Since OAK makes thePrincipalProvider
a public interface of the SPI, it's configuration goes along with the configuration of the JCR levelPrincipalManager
. The authentication setup may have access to the principal configuration if theSecurityProvider
is made available in theAuthenticationConfiguration
.Multiple Sources for Principals
In Jackrabbit 2.x it was possible to configure multiple principal providers. As of OAK there is only one single principal provider implementation responsible for a given configuration. If principals originate from different sources it is recommended to define a separatePrincipalConfiguration
for each source.- Specified by:
getPrincipalProvider
in interfacePrincipalConfiguration
- Parameters:
root
- The targetRoot
.namePathMapper
- TheNamePathMapper
to be used.- Returns:
- An instance of
PrincipalProvider
.
-
-