一、ClientDetail、JWT
@Configuration
@EnableAuthorizationServer
public class Auth2ServerConfig extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthenticationManager authenticationManager;
// @Autowired
// private RedisConnectionFactory redisConnectionFactory;
//jwt访问token转换器
@Bean
public JwtAccessTokenConverter jwtAccessTokenConverter() {
JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
converter.setSigningKey("my-sign-key"); //资源服务器需要配置此选项方能解码jwt
//与授权服务器相同的,现在 Token 可以不需要向授权服务器发起校验,靠的就是这个标识key
return converter;
}
//jwt的存储对象
@Bean
public JwtTokenStore jwtTokenStore() {
return new JwtTokenStore(jwtAccessTokenConverter());
}
//配置client-id
//配置给客户端来申请Token
@Override
public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
security.tokenKeyAccess("permiAll()")
.checkTokenAccess("isAuthenticated()").allowFormAuthenticationForClients();
}
@Autowired
private DataSource dataSource;
//提供 Bean Token 保存到数据库
@Bean
public TokenStore tokenStore() {
return new JdbcTokenStore(dataSource);
//return new RedisTokenStore(redisConnectionFactory);
}
//提供一个 Bean , 读取客户端信息及更新保存授权码
@Bean
public ClientDetailsService jdbcClientDetailsService() {
return new JdbcClientDetailsService(dataSource);
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Ex