I try to pool my ldap Connections. For Configuration in Java i found this: Spring LDAP PoolingContextSource via annotation
@Bean
public LdapContextSource ldapContextSource() {
LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl(ldapUrl);
contextSource.setBase(ldapBase);
return contextSource;
}
@Bean
public ContextSource contextSource() {
PoolingContextSource poolingContextSource = new PoolingContextSource();
poolingContextSource.setDirContextValidator(new DefaultDirContextValidator());
poolingContextSource.setContextSource(ldapContextSource());
poolingContextSource.setTestOnBorrow(true);
poolingContextSource.setTestWhileIdle(true);
return poolingContextSource;
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource(contextSource()) //Here is the Problem
.userDnPatterns(ldapUserDnPatterns)
.groupSearchBase(ldapGroupSearchBase)
.groupSearchFilter(ldapGroupSearchFilter)
.userSearchBase(ldapUserSearchBase);
}
How can i set my PoolingContextSource in the AuthenticationManagerBuilder? It is no applicable type. When i use ldapContextSource() without the PoolingContextSource Bean, it works as long as the connection doesn't timeout :(
Could somebody give me a hint?