2015-02-12 2 views
0

Я использую Spring mvc с аутентификацией LDAP против активного каталога. Теперь у меня есть работа, но мои свойства contextSource: url, managerDN и managerPassword жестко закодированы. Я хотел бы переместить эти свойства в свой server.xml в качестве ресурса и использовать источник данных, чтобы указать эти параметры подключения. Моя мысль заключается в том, что диспетчерDN может использоваться как имя пользователя, а затем остальное будет работать. Единственная проблема заключается в том, что у contextSource нет никаких методов для этого. contextSource - это объект, созданный из contextSourceBuilder. У кого-нибудь есть идеи относительно того, как это сделать?Как указать соединение с источником данных для источника контекста LDAP?

@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

Просто установите его в * .properties файл, пусть Spring загрузить его, а затем использовать:

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

Или: Используйте org.springframework.security.ldap.DefaultSpringSecurityContextSource набор пользователя/ПАРОЛЬ в сетки и установить его в

.contextSource(youFancySpringContext); 
Смежные вопросы