2020-06-19 17:13:01
浏览数 (1)
AuthorizationServerEndpointsConfiguration
代码语言:javascript
复制...
private AuthorizationServerEndpointsConfigurer endpoints = new AuthorizationServerEndpointsConfigurer();
...
//注册工厂
@Bean
public FactoryBean<AuthorizationServerTokenServices> defaultAuthorizationServerTokenServices() {
return new AuthorizationServerTokenServicesFactoryBean(endpoints);
}
...
protected static class AuthorizationServerTokenServicesFactoryBean
extends AbstractFactoryBean<AuthorizationServerTokenServices> {
...
// 创建tokenService实例
@Override
protected AuthorizationServerTokenServices createInstance() throws Exception {
return endpoints.getDefaultAuthorizationServerTokenServices();
}
...
}
...
AuthorizationServerEndpointsConfigurer
代码语言:javascript
复制...
public AuthorizationServerTokenServices getDefaultAuthorizationServerTokenServices() {
if (defaultTokenServices != null) {
return defaultTokenServices;
}
// 创建默认tokenService实例
this.defaultTokenServices = createDefaultTokenServices();
return this.defaultTokenServices;
}
...
private DefaultTokenServices createDefaultTokenServices() {
DefaultTokenServices tokenServices = new DefaultTokenServices();
tokenServices.setTokenStore(tokenStore());
tokenServices.setSupportRefreshToken(true);
tokenServices.setReuseRefreshToken(reuseRefreshToken);
tokenServices.setClientDetailsService(clientDetailsService());
tokenServices.setTokenEnhancer(tokenEnhancer());
addUserDetailsService(tokenServices, this.userDetailsService);
return tokenServices;
}
...
private void addUserDetailsService(DefaultTokenServices tokenServices, UserDetailsService userDetailsService) {
if (userDetailsService != null) {
PreAuthenticatedAuthenticationProvider provider = new PreAuthenticatedAuthenticationProvider();
provider.setPreAuthenticatedUserDetailsService(new UserDetailsByNameServiceWrapper<PreAuthenticatedAuthenticationToken>(
userDetailsService));
tokenServices
.setAuthenticationManager(new ProviderManager(Arrays.<AuthenticationProvider> asList(provider)));
}
}
...