未授予使用 Spring 安全性刷新 LDAP 令牌的作者



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

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

我正在使用普通的LdapUserDetailsService和InMemoryTokenStore。

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

好的,似乎在我的 LdapUserDetailsService 中存在默认的 LdapAuthoritiesPopulator NullAuthorityPopulator,而没有 DefaultLdapAuthoritiesPopulator 或自定义的。所以我提供了一个DefaultLdapAuthorityPopulator,它现在可以工作了。

对于登录,ProviderManager正在使用LdapAuthenticationProvider,该提供程序具有正确配置的DefaultAuthorityPopulator,但对于刷新,它使用具有NullAuthorityPopulator的PreAuthenticatedAuthenticationProvider...

最新更新