【问题标题】:Spring boot Oauth security - User(custom info) info in the principal in Client Credentials grant typeSpring boot Oauth 安全性 - 客户端凭据授予类型中主体中的用户(自定义信息)信息
【发布时间】:2021-06-21 21:51:03
【问题描述】:

我对从前端服务到其他后端服务的其余调用使用“客户端凭据”授权类型。客户端凭据授予类型也用于其他后端服务。通过这样做,我无法知道谁是请求的实际调用者(当前登录用户)。有没有办法将主体的身份验证和授权信息注入到客户端凭据授予中颁发的令牌中? (用户信息是指拥有客户端凭据的用户的 ID 或详细信息)。 我可以使用自定义令牌增强器向令牌添加一些自定义数据。但我不知道我们如何在主体中获取它(SpringSecurityPrincipal springSecurityPrincipal = (SpringSecurityPrincipal)oAuth2Authentication.getPrincipal();),通常在密码流中我们可以通过使用自定义AuthenticationProvider 实现来实现这一点,有没有我可以实现和使用的任何类添加自定义主体?

感谢您的帮助。

【问题讨论】:

    标签: java spring-boot spring-security-oauth2 spring-oauth2 clientcredential


    【解决方案1】:

    您可以根据自己的要求创建自定义UserDetailsService 和自定义Principal。你可以从这里挑选一些想法:Authentication with a Database-backed UserDetailsService

    【讨论】:

    • 这仅适用于密码授予类型,对吧?我已经有了那个实现,客户端凭据流没有通过那个实现。由于某些授权类型不需要用户身份验证(我们的案例 - 客户端凭据)
    猜你喜欢
    • 2019-05-11
    • 2021-04-10
    • 2017-10-02
    • 1970-01-01
    • 2019-12-03
    • 2018-09-18
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    相关资源
    最近更新 更多