Spring Authorization-实现授权码模式使用前后端分离的登录页面
@Configuration
@EnableAuthorizationServer
public class OAuth2AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private TokenStore tokenStore;
@Autowired
private JwtAccessTokenConverter jwtAccessTokenConverter;
@Autowired
private ClientDetailsService clientDetailsService;
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.withClientDetails(clientDetailsService);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
endpoints
.authenticationManager(authenticationManager)
.tokenStore(tokenStore)
.accessTokenConverter(jwtAccessTokenConverter)
.reuseRefreshTokens(false)
.exceptionTranslator(new CustomOAuth2ExceptionTranslator());
}
@Override
public void configure(AuthorizationServerSecurityConfigurer security) {
security
.allowFormAuthenticationForClients()
.tokenKeyAccess("isAuthenticated()")
.checkTokenAccess("permitAll()");
}
}
这个代码实例展示了如何配置一个Spring OAuth2授权服务器来支持授权码模式,并且配置了一个前后端分离的登录页面。它使用了JWT来进行访问令牌的签名,并且提供了一个自定义异常转换器来处理授权服务器中可能出现的异常。
评论已关闭