【发布时间】:2019-12-06 03:21:14
【问题描述】:
我使用 API oauth/token 在 spring sercurity oauth2 中获取 JWT 令牌。我尝试通过使用 TokenEnhancer 接口的增强方法 ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo) 在响应中添加一些附加信息。但是这些附加信息也添加到了 JWT 中,所以它太大了。有什么方法可以将附加信息添加到 oauth/token 请求的正文中,而不是在 JWT 中。
@Override
public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
final Map<String, Object> additionalInfo = new HashMap<>();
WebUser webUser = (WebUser) authentication.getUserAuthentication().getPrincipal();
additionalInfo.put("user_name", authentication.getName());
additionalInfo.put("roles", authentication.getAuthorities());
if(webUser.getFunctions() != null) {
additionalInfo.put("functions", webUser.getFunctions().toString());
}else {
additionalInfo.put("functions", null);
}
((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo);
return accessToken;
}
【问题讨论】:
标签: oauth-2.0 jwt spring-security-oauth2