前面两篇文章分别整合了Spring Security 和 Oauth2.0,
Springboot整合Spring Security Oauth2.0 + JWT (一)
Springboot整合Spring Security Oauth2.0 + JWT (二)
这篇文章记录在前两篇文章的基础之上整合JWT
配置Jwt令牌服务,生成jwt格式的token
@Configuration
public class JwtTokenConfig {
private static final String SIGN_KEY = "auth123";
@Bean
public JwtTokenStore jwtTokenStore(){
return new JwtTokenStore(jwtAccessTokenConverter());
}
@Bean
public JwtAccessTokenConverter jwtAccessTokenConverter(){
JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
converter.setSigningKey(SIGN_KEY);
return converter;
}
}
修改认证服务器
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.authenticationManager(authenticationManager)
.tokenStore(jwtTokenStore)
.accessTokenConverter(jwtAccessTokenConverter);
}
测试通过密码模式申请令牌
资源服务需要和授权服务拥有一致的签字、令牌服务
如果是微服务架构的项目,需要将上面配置的令牌服务JwtTokenConfig拷贝到资源服务中
@Autowired
private JwtTokenStore jwtTokenStore;
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.tokenStore(jwtTokenStore)
.resourceId(RESOURCE_ID)
.stateless(true);
}
使用check_token查看token信息
下篇文章里向token添加自定义信息并获取当前用户信息
Springboot整合Spring Security Oauth2.0 + JWT (四)