LDAP接続をプールしようとしています。Java での構成については、これを見つけました:注釈による Spring LDAP PoolingContextSource
@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);
}
AuthenticationManagerBuilder で PoolingContextSource を設定するにはどうすればよいですか? 該当しないタイプです。PoolingContextSource Bean なしで ldapContextSource() を使用すると、接続がタイムアウトしない限り機能します:(
誰かヒントをくれませんか?