实现TokenEnhancer接口
@Override
public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
User principal = (User) authentication.getUserAuthentication().getPrincipal();
Map<String,Object> info = new HashMap<>();
info.put("userName",principal.getUsername());
((DefaultOAuth2AccessToken)accessToken).setAdditionalInformation(info);
return accessToken;
}
在授权服务器的configure(AuthorizationServerEndpointsConfigurer endpoints)中配置jwt增强器
TokenEnhancerChain enhancerChain = new TokenEnhancerChain();
List<TokenEnhancer> delegates = new ArrayList<>();
delegates.add(jwtTokenEnhancer);
delegates.add(jwtAccessTokenConverter);
enhancerChain.setTokenEnhancers(delegates);
endpoints
.tokenStore(tokenStore)
.accessTokenConverter(jwtAccessTokenConverter)
.tokenEnhancer(enhancerChain);