如何为LDAP上下文源指定与数据源的连接?

时间:2015-02-12 14:06:06

标签: java spring ldap datasource

我使用Spring mvc对Active Directory进行LDAP身份验证。我现在有什么用,但我的contextSource属性:url,managerDN和managerPassword是硬编码的。我想将这些属性作为资源移动到我的server.xml中,并使用数据源来指定这些连接设置。我的想法是managerDN可以像用户名一样使用,然后其余的都可以使用。唯一的问题是contextSource没有任何方法。 contextSource是从contextSourceBuilder创建的对象。任何人对如何做到这一点都有任何想法?

@Configuration
protected static class AuthenticationConfiguration extends GlobalAuthenticationConfigurerAdapter {
    @Override
    public void init(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .ldapAuthentication()
                .userSearchFilter("sAMAccountName={0}")
                .userSearchBase("OU=Accounts")
                .groupSearchFilter("member={0}")
                .groupSearchBase("OU=Groups")
                .contextSource()
                    .url("ldap://myurl:portNum")
                    .managerDn("stuff")
                    .managerPassword("things");
    }
}

1 个答案:

答案 0 :(得分:0)

只需将其设置在* .properties文件中,让Spring加载它然后使用:

@Value(${ldap.manager})
String managerDn;
@Value(${ldap.manager.password})
String managerPassword;
[...]
.managerDn(managerDn)
     .managerPassword(managerPassword);

或者: 使用org.springframework.security.ldap.DefaultSpringSecurityContextSource  在setter中设置user / passoword并将其设置为

.contextSource(youFancySpringContext);