【问题标题】:Spring Oauth2 SSO: Use Authority granted by AuthorizationServerSpring Oauth2 SSO:使用 AuthorizationServer 授予的权限
【发布时间】:2015-09-28 04:17:35
【问题描述】:

我的设置是一个授权服务器,我在其中对 ldap 进行身份验证。 当我直接从授权服务器请求用户时 他有一个特定的权限,具体取决于 ldap 组。

当我在调试时查看 ResourceServer 中的 Oauth2Authentication 时,只有 userAuthentication.details.authorities 具有此权限。任何其他权限都设置为 ROLE_USER。

是否可以使用 AuthorizationServer 提供的用户权限?

如果我使用 spring.oauth2.resource.tokenInfoUri 来检索权限,它可以工作。但我想使用 AuthorizationServer 提供的 UserDetails..

【问题讨论】:

    标签: java spring spring-security spring-security-oauth2 spring-security-ldap


    【解决方案1】:

    解决方案是创建一个自定义 UserInfoTokenServices 并按照我在 answer to a very similar question 中的说明提供它。

    在这个 UserInfoTokenServices 中,我能够从授权服务器的/usersendpoint 的响应中提取权限。

    !!更新!!有了 Spring Boot 1.4.0,事情变得更简单了!

    在 Spring Boot 1.4.0 中引入了 PrincipalExtractor。应实现此类以提取自定义主体(请参阅Spring Boot 1.4 Release Notes)。

    如果它只是关于权限,你可以实现AuthoritiesExtractor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-09
      • 2017-08-31
      • 2018-05-26
      • 2017-10-17
      • 2017-12-21
      • 1970-01-01
      • 2021-08-13
      • 2011-09-02
      相关资源
      最近更新 更多