我正在使用 spring-security-ldap
将ldap身份验证添加到我的应用程序。其配置如下:
auth.ldapAuthentication()
.userSearchBase(ldapConfigProperties.getUserSearchBase())
.userSearchFilter(ldapConfigProperties.getUserSearchFilter())
.contextSource()
.managerDn(ldapConfigProperties.getManagerDn())
.managerPassword(ldapConfigProperties.getManagerPassword())
.url(ldapConfigProperties.getUrl())
.and()
.userDetailsContextMapper(ldapContextMapper);
这个 ldapContextMapper
是一个名为 LdapUserContextMapper
实现 UserDetailsContextMapper
.
内部 mapUserFromContext()
我使用 DirContextOperations
从ldap用户检索多个属性以构造具体的 User
波乔。但是,我无法访问操作属性,例如 memberOf
. 我尝试了我在网上能找到的每一个解决方案,但似乎没有任何效果。
例如, ctx.getObjectAttributes("memberOf")
返回null。正在尝试呼叫 ctx.search("", "", searchControls)
有习惯的 SearchControls
与 SUBTREE_SCOPE
产生 not implemented
例外情况 DirContextAdapter
.
有什么想法吗?
1条答案
按热度按时间kqlmhetl1#
我最终以自己的示例结束
ContextSource
然后使用自定义ObjectPostProcessor
,正如本期所述。