我已在Spring启动应用程序中为LDAP搜索(而非LDAP绑定)配置了LDAP连接池。这是我的LDAP配置:
@Bean
public ContextSource poolingLdapContextSource() {
PoolingContextSource poolingContextSource = new PoolingContextSource();
poolingContextSource.setDirContextValidator(new DefaultDirContextValidator());
poolingContextSource.setContextSource(ldapContextSource());
return poolingContextSource;
}
@Bean
public LdapContextSource ldapContextSource() {
LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrls(ldapUrls.toArray(new String[]{}));
contextSource.setUserDn(ldapUsername);
contextSource.setPassword(ldapPassword);
contextSource.setPooled(false);
return contextSource;
}
@Bean
public LdapTemplate ldapTemplate() throws Exception {
return new LdapTemplate(poolingLdapContextSource());
}
我在application.yml中启用了调试日志记录,如下所示:
org.springframework.ldap:debug
org.springframework.ldap.pool:debug
在日志中,我看到以下内容:
17-10-10 16:11:12:976 DEBUG o.s.l.c.s.AbstractContextSource - AuthenticationSource not set - using default implementation
2017-10-10 16:11:12:976 DEBUG o.s.l.c.s.AbstractContextSource - **Not using LDAP pooling**
2017-10-10 16:11:12:976 DEBUG o.s.l.c.s.AbstractContextSource - Trying provider Urls: ldap://xxx:389 ldap://yyy:389
问题:
答案 0 :(得分:0)
一年或更长时间后,现在可能无法为您提供帮助,但是即使有了TRACE,org.springframework.ldap
或org.springframework.security
也不会再有日志记录。
您可以通过另外两种方式向自己证明。
不提供非池LdapContextSource
。只需以编程方式将其提供给PoolingContextSource.setContextSource()
以调试方式运行服务器,并在PoolingContextSource.getContext()
中放置一个断点。