
com.day.cq.analytics.sitecatalyst.util.TokenProviderProxyImpl Maven / Gradle / Ivy
package com.day.cq.analytics.sitecatalyst.util;
import com.adobe.granite.auth.oauth.AccessTokenProvider;
import com.adobe.granite.crypto.CryptoException;
import org.apache.commons.lang.StringUtils;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
import org.osgi.service.component.annotations.ReferencePolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Nonnull;
import java.io.IOException;
import java.util.concurrent.ConcurrentHashMap;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
@Component
public final class TokenProviderProxyImpl implements TokenProviderProxy {
@Reference(
service = AccessTokenProvider.class,
policy = ReferencePolicy.DYNAMIC,
cardinality = ReferenceCardinality.MULTIPLE,
target = "(&(" + ConfigurationAdmin.SERVICE_FACTORYPID + "=" + ACCESS_TOKEN_PROVIDER_FACTORY_PID + "))",
bind = "bindAccessTokenProvider",
unbind = "unbindAccessTokenProvider")
// When using DS annotation a ReferenceCardinality.MULTIPLE requires
// either a Collection or a List type variable so we use a dummy List to avoid an error
// in the logs when service is initialized
private volatile List> tokenProviders;
private Logger log = LoggerFactory.getLogger(getClass());
@Reference
private ResourceResolverFactory resourceResolverFactory;
private Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy