OAuth2Initializer.java 文件源码

java
阅读 27 收藏 0 点赞 0 评论 0

项目:joyrest 作者:
@Override
@SuppressWarnings("unchecked")
public void init(InitContext context, BeanFactory beanFactory) {
    AuthorizationServerConfiguration authServerConfig = beanFactory.get(AuthorizationServerConfiguration.class);
    TokenStore tokenStore = authServerConfig.getTokenStore();
    UserDetailsService userService = authServerConfig.getUserDetailsService();
    ClientDetailsService clientService = authServerConfig.getClientDetailsService();
    DataSource dataSource = authServerConfig.getDataSource();

    PreAuthenticatedAuthenticationProvider preProvider = new PreAuthenticatedAuthenticationProvider();
    preProvider.setPreAuthenticatedUserDetailsService(new UserDetailsByNameServiceWrapper(userService));

    DaoAuthenticationProvider clientAuthProvider = new DaoAuthenticationProvider();
    clientAuthProvider.setUserDetailsService(new ClientDetailsUserDetailsService(clientService));

    DaoAuthenticationProvider userAuthProvider = new DaoAuthenticationProvider();
    userAuthProvider.setUserDetailsService(userService);

    ProviderManager clientManager = new ProviderManager(singletonList(clientAuthProvider));
    ProviderManager userManager = new ProviderManager(asList(userAuthProvider, preProvider));

    AuthorizationCodeServices authServices = new InMemoryAuthorizationCodeServices();
    OAuth2RequestFactory requestFactory = new DefaultOAuth2RequestFactory(clientService);

    DefaultTokenServices tokenServices = tokenServices(clientService, userManager, tokenStore, dataSource);
    TokenGranter tokenGranter = compositeTokenGranter(clientService, userManager, tokenServices, requestFactory,
        authServices);

    TokenEndpoint tokenEndpoint = new TokenEndpoint(clientManager, clientService, tokenGranter);

    TokenStoreUserApprovalHandler userApprovalHandler = new TokenStoreUserApprovalHandler();
    userApprovalHandler.setClientDetailsService(clientService);
    userApprovalHandler.setRequestFactory(requestFactory);
    userApprovalHandler.setTokenStore(tokenStore);

    AuthorizationEndpoint authorizationEndpoint = new AuthorizationEndpoint(
        authServices, clientService, tokenGranter, userApprovalHandler, requestFactory);

    context.addControllerConfiguration(tokenEndpoint);
    context.addControllerConfiguration(authorizationEndpoint);
    context.addExceptionConfiguration(new OAuthExceptionConfiguration());
    context.addInterceptor(new AuthenticationInterceptor(clientManager));
    context.addInterceptor(new AuthorizationInterceptor());
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号