使用spring security检索可操作的ldap属性

pzfprimi  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(300)

我正在使用 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) 有习惯的 SearchControlsSUBTREE_SCOPE 产生 not implemented 例外情况 DirContextAdapter .
有什么想法吗?

kqlmhetl

kqlmhetl1#

我最终以自己的示例结束 ContextSource 然后使用自定义 ObjectPostProcessor ,正如本期所述。

相关问题