Spring Boot LDAP-用于自动配置的池属性

时间:2019-02-01 14:18:16

标签: java spring spring-boot spring-ldap spring-config

在Spring Boot中,我可以传递将用于自动配置的属性:

  • spring.ldap.url
  • spring.ldap.username
  • spring.ldap.password

是否有任何spring.ldap.*属性可以设置pooled=true以避免使用显式的LdapTemplate配置?

LdapContextSource contextSource = new LdapContextSource();
contextSource.setPooled(true);

3 个答案:

答案 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