Spring security 如何深入LDAP树以找到可以在SpringLDAP安全中进行身份验证的用户
我想使用spring安全ldap身份验证。但是,我希望递归地遍历ldap树。不幸的是,我只能找到一个级别或深度的用户 例如,我的用户树如下所示: ouUsers:有用户(user1、user2等)和子树(ouGenel、ouYatay) 子树有子树和用户 我希望递归遍历ldap树,以便在spring安全项目中进行身份验证 我的spring验证代码如下,我应该在代码中更改什么Spring security 如何深入LDAP树以找到可以在SpringLDAP安全中进行身份验证的用户,spring-security,active-directory,ldap,spring-ldap,spring-security-ldap,Spring Security,Active Directory,Ldap,Spring Ldap,Spring Security Ldap,我想使用spring安全ldap身份验证。但是,我希望递归地遍历ldap树。不幸的是,我只能找到一个级别或深度的用户 例如,我的用户树如下所示: ouUsers:有用户(user1、user2等)和子树(ouGenel、ouYatay) 子树有子树和用户 我希望递归遍历ldap树,以便在spring安全项目中进行身份验证 我的spring验证代码如下,我应该在代码中更改什么 @Override public void configure(AuthenticationManagerBuilder
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("CN={0},OU=ouUsers")
.groupSearchBase("ou=ouUsers")
.contextSource()
.url(url+"/"+base)
.managerDn(dn)
.managerPassword(password)
.and()
.passwordCompare()
.passwordEncoder(new LdapShaPasswordEncoder())
.passwordAttribute("sn");
}
谢谢您需要使用
userSearchFilter()
和userSearchBase()
而不是userDnPatterns()
尝试通过在提供的模式中替换用户登录名,并从LDAP url中附加基数来匹配DN 如果所有用户都存储在 目录userDnPatterns
- 另一方面,
可用于匹配常规请求中的登录名,在特定基础下搜索树(默认搜索范围=userSearchFilter()
)子树
可以选择性地用于设置用户条目所在的分支rdn,并从中执行搜索。如果未指定,搜索将包括从LDAP url的基本dn开始的整个目录userSearchBase()
.userSearchBase('ou=ouUsers')
.userSearchFilter('(cn={0})')
您需要使用
userSearchFilter()
和userSearchBase()
而不是userDnPatterns()
尝试通过在提供的模式中替换用户登录名,并从LDAP url中附加基数来匹配DN 如果所有用户都存储在 目录userDnPatterns
- 另一方面,
可用于匹配常规请求中的登录名,在特定基础下搜索树(默认搜索范围=userSearchFilter()
)子树
可以选择性地用于设置用户条目所在的分支rdn,并从中执行搜索。如果未指定,搜索将包括从LDAP url的基本dn开始的整个目录userSearchBase()
.userSearchBase('ou=ouUsers')
.userSearchFilter('(cn={0})')