如何在Springboot中针对多个基本ldap dns进行验证

时间:2018-09-15 18:15:26

标签: java spring-boot ldap

当前,我有一个基础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

1 个答案:

答案 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