UserManagementDefaultService.java 3.83 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.annotation.Nonnull
 *  javax.jcr.RepositoryException
 *  javax.jcr.Session
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.felix.scr.annotations.Service
 *  org.apache.jackrabbit.api.JackrabbitSession
 *  org.apache.jackrabbit.api.security.user.UserManager
 *  org.apache.jackrabbit.oak.spi.security.ConfigurationParameters
 *  org.apache.jackrabbit.oak.spi.security.user.AuthorizableType
 *  org.apache.jackrabbit.oak.spi.security.user.UserConfiguration
 *  org.apache.jackrabbit.oak.spi.security.user.UserConstants
 *  org.apache.jackrabbit.oak.spi.security.user.util.UserUtil
 *  org.osgi.framework.ServiceRegistration
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.granite.security.user.internal;

import com.adobe.granite.security.user.UserManagementService;
import javax.annotation.Nonnull;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.api.JackrabbitSession;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType;
import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
import org.apache.jackrabbit.oak.spi.security.user.util.UserUtil;
import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component
@Service(value={UserManagementService.class})
public class UserManagementDefaultService
implements UserManagementService,
UserConstants {
    private static final Logger log = LoggerFactory.getLogger(UserManagementDefaultService.class);
    @Reference
    private UserConfiguration userConfiguration;
    private ServiceRegistration registration;

    @Nonnull
    @Override
    public UserManager getUserManager(@Nonnull Session session) throws UnsupportedOperationException, RepositoryException {
        if (session instanceof JackrabbitSession) {
            return ((JackrabbitSession)session).getUserManager();
        }
        throw new UnsupportedOperationException("Cannot retrieve UserManager: Session doesn't implement JackrabbitSession.");
    }

    @Override
    public String getAuthorizableRootPath() {
        return this.getRootPath(AuthorizableType.AUTHORIZABLE);
    }

    @Override
    public String getUserRootPath() {
        return this.getRootPath(AuthorizableType.USER);
    }

    @Override
    public String getGroupRootPath() {
        return this.getRootPath(AuthorizableType.GROUP);
    }

    @Override
    public String getAnonymousId() {
        if (this.userConfiguration != null) {
            return (String)this.userConfiguration.getParameters().getConfigValue("anonymousId", (Object)"anonymous");
        }
        return "anonymous";
    }

    @Nonnull
    @Override
    public String getEveryoneName() {
        return "everyone";
    }

    private String getRootPath(AuthorizableType authorizableType) {
        ConfigurationParameters config = this.userConfiguration != null ? this.userConfiguration.getParameters() : ConfigurationParameters.EMPTY;
        return UserUtil.getAuthorizableRootPath((ConfigurationParameters)config, (AuthorizableType)authorizableType);
    }

    protected void bindUserConfiguration(UserConfiguration userConfiguration) {
        this.userConfiguration = userConfiguration;
    }

    protected void unbindUserConfiguration(UserConfiguration userConfiguration) {
        if (this.userConfiguration == userConfiguration) {
            this.userConfiguration = null;
        }
    }
}