没有授权机构刷新具有 Spring 安全性的 LDAP 令牌
No granted Authories on Refreshing LDAP Token with Spring Security
我目前正在一个项目中工作,其中我有两个内部角色,具有允许用户执行的权限,这对应于 LDAP 中两个组的成员身份。
当我通过 /oauth/token?grant_type=passwort... 登录时,我正确地获得了我的 LDAP 条目,并将已解析的组作为角色。但是现在,如果我想在此端点上刷新我的令牌(通过 /oauth/token?grant_type=refresh_token...),我没有获得任何授权。我仍然获得有效的访问和刷新令牌对,但现在权限错误,因为我没有这些权限。
关于 LDAP 或 Spring 启动有什么特别需要知道的,这应该发生或者为什么这不起作用?我还发现,当我比较从初始登录获得的身份验证(所有 ou/dc 快捷方式都是小写的)与从刷新获得的身份验证(所有 OU 快捷方式都是大写的)时,这些组略有不同。 spring/ldap 这里是否使用不同的 ldap 查询来刷新和登录?
我正在使用普通的 LdapUserDetailsService 和 InMemoryTokenStore。
希望大家明白我的意思...
好的,我的 LdapUserDetailsService 中似乎有默认的 LdapAuthoritiesPopulator 和 NullAuthoritiesPopulator,没有 DefaultLdapAuthoritiesPopulator 或自定义的。所以我提供了一个 DefaultLdapAuthoritiesPopulator,它现在可以工作了。
对于登录,ProviderManager 使用的是 LdapAuthenticationProvider,它有一个正确配置的 DefaultAuthoritiesPopulator,但为了刷新,它使用了具有 NullAuthoritiesPopulator 的 PreAuthenticatedAuthenticationProvider...
我目前正在一个项目中工作,其中我有两个内部角色,具有允许用户执行的权限,这对应于 LDAP 中两个组的成员身份。 当我通过 /oauth/token?grant_type=passwort... 登录时,我正确地获得了我的 LDAP 条目,并将已解析的组作为角色。但是现在,如果我想在此端点上刷新我的令牌(通过 /oauth/token?grant_type=refresh_token...),我没有获得任何授权。我仍然获得有效的访问和刷新令牌对,但现在权限错误,因为我没有这些权限。
关于 LDAP 或 Spring 启动有什么特别需要知道的,这应该发生或者为什么这不起作用?我还发现,当我比较从初始登录获得的身份验证(所有 ou/dc 快捷方式都是小写的)与从刷新获得的身份验证(所有 OU 快捷方式都是大写的)时,这些组略有不同。 spring/ldap 这里是否使用不同的 ldap 查询来刷新和登录?
我正在使用普通的 LdapUserDetailsService 和 InMemoryTokenStore。
希望大家明白我的意思...
好的,我的 LdapUserDetailsService 中似乎有默认的 LdapAuthoritiesPopulator 和 NullAuthoritiesPopulator,没有 DefaultLdapAuthoritiesPopulator 或自定义的。所以我提供了一个 DefaultLdapAuthoritiesPopulator,它现在可以工作了。
对于登录,ProviderManager 使用的是 LdapAuthenticationProvider,它有一个正确配置的 DefaultAuthoritiesPopulator,但为了刷新,它使用了具有 NullAuthoritiesPopulator 的 PreAuthenticatedAuthenticationProvider...