在Spring Boot中,我可以传递将用于自动配置的属性:
是否有任何spring.ldap.*
属性可以设置pooled=true
以避免使用显式的LdapTemplate配置?
LdapContextSource contextSource = new LdapContextSource();
contextSource.setPooled(true);
答案 0 :(得分:2)
根据the Appendix列出了所有Spring Boot属性,否。我还查看了LdapProperties类,该类在运行时存储这些值,并且在其中看不到任何有助于池化的内容。我怀疑您将不得不继续手动执行此操作。
也许对他们进行公关?如果社区有需要,他们似乎愿意增加一些东西。
答案 1 :(得分:0)
您可以使用JVM参数设置ldap池属性。您在启动应用程序时指定它们。
例如:
-Dcom.sun.jndi.ldap.connect.pool.maxsize=10
-Dcom.sun.jndi.ldap.connect.pool.prefsize=5
-Dcom.sun.jndi.ldap.connect.pool.timeout=300000
答案 2 :(得分:0)
我在此阅读的所有内容都建议使用PoolingContextSource进行配置。 LDAP认证过程需要一个有问题的两阶段过程。以下摘自Spring LDAP专家Mattias Hellborg Arthursson的博客。
内置JNDI连接池
ContextSource的pooled属性以前默认为true, 默认情况下启用内置的Java LDAP连接池。然而 内置的LDAP连接池存在许多缺陷 (最值得注意的是,无法进行连接验证和 配置非常繁琐),这就是为什么我们决定更改 默认为false。如果您需要连接池,我们强烈建议 建议改用Spring LDAP PoolingContextSource。
https://blog.jayway.com/2008/10/27/whats-new-in-spring-ldap-13/
https://docs.spring.io/spring-ldap/docs/1.3.2.RELEASE/reference/html/pooling.html