Search in sources :

Example 6 with PrincipalProvider

use of org.apache.jackrabbit.core.security.principal.PrincipalProvider in project jackrabbit by apache.

the class UserPerWorkspaceSecurityManager method getPrincipalProviderRegistry.

private PrincipalProviderRegistry getPrincipalProviderRegistry(SessionImpl s) throws RepositoryException {
    String wspName = s.getWorkspace().getName();
    synchronized (monitor) {
        PrincipalProviderRegistry p = ppRegistries.get(wspName);
        if (p == null) {
            SystemSession systemSession;
            if (s instanceof SystemSession) {
                systemSession = (SystemSession) s;
            } else {
                RepositoryImpl repo = (RepositoryImpl) getRepository();
                systemSession = repo.getSystemSession(wspName);
                // TODO: review again... this workaround is used in several places.
                repo.markWorkspaceActive(wspName);
            }
            Properties[] moduleConfig = new AuthContextProvider("", ((RepositoryImpl) getRepository()).getConfig().getSecurityConfig().getLoginModuleConfig()).getModuleConfig();
            PrincipalProvider defaultPP = new DefaultPrincipalProvider(systemSession, (UserManagerImpl) getUserManager(systemSession));
            boolean initialized = false;
            for (Properties props : moduleConfig) {
                //GRANITE-4470: apply config to DefaultPrincipalProvider if there is no explicit PrincipalProvider configured
                if (!props.containsKey(LoginModuleConfig.PARAM_PRINCIPAL_PROVIDER_CLASS) && props.containsKey(AbstractPrincipalProvider.MAXSIZE_KEY)) {
                    defaultPP.init(props);
                    initialized = true;
                    break;
                }
            }
            if (!initialized) {
                defaultPP.init(new Properties());
            }
            p = new WorkspaceBasedPrincipalProviderRegistry(defaultPP);
            ppRegistries.put(wspName, p);
        }
        return p;
    }
}
Also used : DefaultPrincipalProvider(org.apache.jackrabbit.core.security.principal.DefaultPrincipalProvider) AbstractPrincipalProvider(org.apache.jackrabbit.core.security.principal.AbstractPrincipalProvider) PrincipalProvider(org.apache.jackrabbit.core.security.principal.PrincipalProvider) DefaultPrincipalProvider(org.apache.jackrabbit.core.security.principal.DefaultPrincipalProvider) Properties(java.util.Properties) PrincipalProviderRegistry(org.apache.jackrabbit.core.security.principal.PrincipalProviderRegistry) AuthContextProvider(org.apache.jackrabbit.core.security.authentication.AuthContextProvider)

Aggregations

PrincipalProvider (org.apache.jackrabbit.core.security.principal.PrincipalProvider)6 Properties (java.util.Properties)4 AuthContextProvider (org.apache.jackrabbit.core.security.authentication.AuthContextProvider)3 AbstractPrincipalProvider (org.apache.jackrabbit.core.security.principal.AbstractPrincipalProvider)3 DefaultPrincipalProvider (org.apache.jackrabbit.core.security.principal.DefaultPrincipalProvider)3 ProviderRegistryImpl (org.apache.jackrabbit.core.security.principal.ProviderRegistryImpl)3 RepositoryException (javax.jcr.RepositoryException)2 LoginModuleConfig (org.apache.jackrabbit.core.config.LoginModuleConfig)2 SecurityManagerConfig (org.apache.jackrabbit.core.config.SecurityManagerConfig)2 WorkspaceAccessManager (org.apache.jackrabbit.core.security.authorization.WorkspaceAccessManager)2 PrincipalProviderRegistry (org.apache.jackrabbit.core.security.principal.PrincipalProviderRegistry)2 StringReader (java.io.StringReader)1 RepositoryImpl (org.apache.jackrabbit.core.RepositoryImpl)1 SecurityConfig (org.apache.jackrabbit.core.config.SecurityConfig)1 WorkspaceSecurityConfig (org.apache.jackrabbit.core.config.WorkspaceSecurityConfig)1 AccessControlProviderFactoryImpl (org.apache.jackrabbit.core.security.authorization.AccessControlProviderFactoryImpl)1 Element (org.w3c.dom.Element)1 InputSource (org.xml.sax.InputSource)1