【问题标题】:Is it possible to get the ClientDetails in TokenEnhancer是否可以在 TokenEnhancer 中获取 ClientDetails
【发布时间】:2020-04-10 08:18:12
【问题描述】:
我在 oauth_client_details 表中配置了一些附加信息,我需要将其作为访问令牌响应中的附加数据发送。
尝试调用OAuth2AccessToken.getAdditionalInformation(),但结果为空
谁能解释一下
Map<String, Object> getAdditionalInformation() in org.springframework.security.oauth2.provider.ClientDetails
【问题讨论】:
标签:
java
spring
oauth-2.0
spring-security-oauth2
【解决方案1】:
我最终这样做了
@Component
public class ClTokenEnhancer implements TokenEnhancer {
private ClientDetailsService clientDetailsService;
public ClTokenEnhancer( ClientDetailsService clientDetailsService ) {
this.clientDetailsService = clientDetailsService;
}
@Override
public OAuth2AccessToken enhance( OAuth2AccessToken accessToken, OAuth2Authentication authentication ) {
ClientDetails clientDetails = clientDetailsService.loadClientByClientId( authentication.getOAuth2Request().getClientId() );
( (DefaultOAuth2AccessToken) accessToken ).setAdditionalInformation( clientDetails.getAdditionalInformation() );
return accessToken;
}
}