1

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

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

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

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

4

1 回答 1

0

解决方案是创建一个自定义 UserInfoTokenServices 并提供它,正如我在回答一个非常相似的问题时所解释的那样。

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

!!更新!!有了 Spring Boot 1.4.0,事情变得更容易了!

Spring Boot 1.4.0 引入了PrincipalExtractor。应该实现此类以提取自定义主体(请参阅Spring Boot 1.4 发行说明)。

如果它只是关于权限,您可以实施AuthoritiesExtractor

于 2015-07-15T08:50:23.273 回答