为每个用法的新连接动态设置spring ldap base

时间:2014-04-30 19:50:19

标签: spring-ldap

这个问题是关于最佳做法的,如果可能的话。

我需要知道我是否可以在代码中动态更改ldap上下文源的基础?

我的ldap bean连接了以下

<ldap:context-source
    url="ldap://<url>"
    base="dc=example,dc=local"
    username="<user>@example.local"
    password="<pass>"
/>

我可以在代码中根据给定的动态变化参数将上下文源更改为另一个基础吗?

例如,如果我想将base更改为dc = example2,dc = local。

如果我以编程方式设置LdapContextSource,这将没有问题。

1 个答案:

答案 0 :(得分:4)

所以这比我想象的更简单,更容易。

我所要做的就是继续创造

LdapContextSource ctxSrc = new LdapContextSource();
    ctxSrc.setUrl("ldap://<url>");
    ctxSrc.setBase("dc=example,dc=local");
    ctxSrc.setUserDn("<user>@example.local");
    ctxSrc.setPassword("<pass>");

ctxSrc.afterPropertiesSet(); // this method should be called.

LdapTemplate tmpl = new LdapTemplate(ctxSrc);
setLdapTemplate(tmpl);

并将我的LdapContextSource值基于我的情况下属于动态源的属性。

我在想,还有更多春天喜欢做的事情。