我使用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");
}
}
答案 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);