java - 是否可以在TokenEnhancer中获取ClientDetails

标签 java spring oauth-2.0 spring-security-oauth2

我已经在 oauth_client_details 表中配置了一些附加信息,我需要将其作为访问 token 响应中的附加数据发送。

尝试调用OAuth2AccessToken.getAdditionalInformation(),结果为空

有人可以解释一下

的用法吗
Map<String, Object> getAdditionalInformation() in org.springframework.security.oauth2.provider.ClientDetails

最佳答案

我最终这样做了

@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;
    }
}

关于java - 是否可以在TokenEnhancer中获取ClientDetails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59380840/

相关文章:

java - 克隆存储库时 JGit 错误

java - 带有 mode = AdviceMode.ASPECTJ 的 Spring Transaction 无法正常工作

javascript - RingCentral JavaScript SDK 处理重定向 URI 指向本地 JavaScript 函数

facebook-graph-api - Identity Server 3 Facebook 登录 获取电子邮件

java - XML 密码混淆

java - hibernate :双向与单向,取决于关系

java - 集成测试期间托管网站

java - 下载文件 java spring rest api

spring - JSF 2 + Spring 3 : Cannot get it work

android - 在 Android 中迁移到最新的 Google Drive API 时出错 - 超出了未经身份验证使用的每日限制。继续使用需要注册