package org.springframework.social.live.config.annotation;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.social.config.support.ProviderConfigurationSupport;
import org.springframework.social.live.config.LiveApiHelper;
import org.springframework.social.live.connect.LiveConnectionFactory;
import org.springframework.social.live.security.LiveAuthenticationService;
import org.springframework.social.security.provider.SocialAuthenticationService;
import java.lang.annotation.Annotation;
import java.util.Map;
public class LiveProviderConfigRegistrar extends ProviderConfigurationSupport {
private final Class<? extends Annotation> providerConfigAnnotation;
public LiveProviderConfigRegistrar() {
super(LiveConnectionFactory.class, LiveApiHelper.class);
this.providerConfigAnnotation = EnableLive.class;
}
@Override
protected Class<? extends SocialAuthenticationService<?>> getAuthenticationServiceClass() {
return LiveAuthenticationService.class;
}
public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) {
Map<String, Object> allAttributes = metadata.getAnnotationAttributes(providerConfigAnnotation.getName());
registerBeanDefinitions(registry, allAttributes);
}
@Override
protected String getAppId(Map<String, Object> allAttributes) {
return (String) allAttributes.get("appId");
}
@Override
protected String getAppSecret(Map<String, Object> allAttributes) {
return (String) allAttributes.get("appSecret");
}
}