2

我尝试汇集我的 ldap 连接。对于 Java 中的配置,我发现了这个: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);
}

如何在 AuthenticationManagerBuilder 中设置我的 PoolingContextSource?它不是适用的类型。当我在没有 PoolingContextSource Bean 的情况下使用 ldapContextSource() 时,只要连接不超时,它就可以工作:(

有人可以给我一个提示吗?

4

0 回答 0