当前,我有一个基础dn,用于创建用户并验证我的ldap。如何为多个基本dns执行此操作,我需要根据自己的角色检入基本dns。下面是我当前的代码。
ldap.urls= ldap://localhost:10389/
ldap.base.dn= ou=users,dc=example,dc=com
ldap.user.dn.pattern = cn={0}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
if(Boolean.parseBoolean(ldapEnabled)) {
auth.ldapAuthentication()
.userDetailsContextMapper(userDetailsContextMapper())
.userDnPatterns(ldapUserDnPattern)
.contextSource()
.url(ldapUrls+ldapBaseDn);
}
}
但是我想对多个2个基本dns执行此操作。 ldap.base.dn= ou=test1,dc=example,dc=com,
ldap.base.dn= ou=test2,dc=example,dc=com
答案 0 :(得分:0)
我能够通过更改userDNSPatters
varchar
的方式来解决此问题。下面是修改后的版本
ldap.urls= ldap://localhost:10389/
ldap.base.dn= dc=example,dc=com
ldap.user.dn.pattern.test1 = cn={0},ou=test1
ldap.user.dn.pattern.test2 = cn={0},ou=test2
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
if(Boolean.parseBoolean(ldapEnabled)) {
auth.ldapAuthentication()
.userDetailsContextMapper(userDetailsContextMapper())
.userDnPatterns(ldapUserDnPattern1, ldapUserDnPattern2)
.contextSource()
.url(ldapUrls+ldapBaseDn);
}
}
这样,它既搜索ou's