2

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() を使用すると、接続がタイムアウトしない限り機能します:(

誰かヒントをくれませんか?

4

0 に答える 0