【问题标题】:No granted Authories on Refreshing LDAP Token with Spring Security没有授予使用 Spring Security 刷新 LDAP 令牌的授权
【发布时间】:2019-09-02 11:49:59
【问题描述】:

我目前正在一个项目中工作,其中我有两个内部角色,它们具有允许用户执行的权限,这对应于 LDAP 中两个组的成员身份。 当我通过 /oauth/token?grant_type=passwort... 登录时,我正确地获得了我的 LDAP 条目,其中解析的组作为角色。但是现在如果我想在这个端点上刷新我的令牌(通过 /oauth/token?grant_type=refresh_token...),我没有得到任何授权。我仍然可以获得有效的访问权限和刷新令牌对,但现在权限错误,因为我没有这些权限。

关于 LDAP 或 Spring Boot 是否应该发生这种情况或为什么这不起作用?我还发现,当我比较从初始登录获得的身份验证(所有 ou/dc 快捷方式均为小写)与刷新身份验证(所有 OU 快捷方式均为大写)时,这些组略有不同。这里的 spring/ldap 是否使用不同的 ldap 查询来刷新和登录?

我使用的是普通的 LdapUserDetailsS​​ervice 和 InMemoryTokenStore。

我希望它清楚我的意思......

【问题讨论】:

    标签: spring ldap token


    【解决方案1】:

    好的,我的 LdapUserDetailsS​​ervice 中似乎有 Default LdapAuthoritiesPopulator NullAuthoritiesPopulator,没有 DefaultLdapAuthoritiesPopulator 或自定义。所以我提供了一个 DefaultLdapAuthoritiesPopulator,它现在可以工作了。

    对于登录,ProviderManager 使用 LdapAuthenticationProvider,它有一个正确配置的 DefaultAuthoritiesPopulator,但为了刷新它使用 PreAuthenticatedAuthenticationProvider,它有一个 NullAuthoritiesPopulator...

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 2018-08-21
      • 2021-02-26
      • 2021-11-14
      • 2020-01-21
      • 2020-09-08
      • 1970-01-01
      • 2018-02-01
      • 2017-04-09
      相关资源
      最近更新 更多