废话不说直接进入主题(假设您已对spring security、oauth2、jwt技术的了解,不懂的自行搜索了解)
依赖版本
- springboot 2.1.5.RELEASE
- spring-security-oauth2 2.3.5.RELEASE
- jjwt 0.9.1
新增JWTokenConfig
@Configuration
public class JWTokenConfig {
@Bean
public TokenStore jwtTokenStore() {
return new JwtTokenStore(jwtAccessTokenConverter());
}
@Bean
public JwtAccessTokenConverter jwtAccessTokenConverter() {
JwtAccessTokenConverter accessTokenConverter = new JwtAccessTokenConverter();
accessTokenConverter.setSigningKey("entfrm"); //对称加密key
return accessTokenConverter;
}
@Bean
public TokenEnhancer tokenEnhancer() {
return new JWTTokenEnhancer(); // token增强
}
}
JwtAccessTokenConverter:TokenEnhancer的子类,帮助程序在JWT编码的令牌值和OAuth身份验证信息之间进行转换。
此处定义token 签名的方式,采用对称加密方式。
增加JwtTokenEnhancer类
public class JWTTokenEnhancer implements TokenEnhancer {
@Override
public OAuth2AccessToken enhance(OAuth2AccessToken oAuth2AccessToken, OAuth2Authentication oAuth2Authentication) {
Map<String, Object> info = new HashMap<>()