我正在尝试创建一个spring rest应用程序来返回可能来自两个不同ldap目录服务器的值。这可能是使用spring ldap存储库吗?是否可以创建多个ldaptemplate和contextsource以便我可以查询这两个目录?
答案 0 :(得分:0)
您可以为每个LDAP目录配置单独的contextSource
和@Configuration
@EnableLdapRepositories(basePackages = "com.foo.ldap1.repositories", ldapTemplateRef="ldapTemplate1")
public class Ldap1Configuration {
@Autowired
Environment env;
@Bean
public LdapContextSource contextSource1() {
LdapContextSource contextSource= new LdapContextSource();
contextSource.setUrl(env.getRequiredProperty("ldap1.url"));
contextSource.setBase(env.getRequiredProperty("ldap1.base"));
contextSource.setUserDn(env.getRequiredProperty("ldap1.user"));
contextSource.setPassword(env.getRequiredProperty("ldap1.password"));
return contextSource;
}
@Bean(name="ldapTemplate1")
public LdapTemplate ldapTemplate1() {
return new LdapTemplate(contextSource1());
}
}
bean。
您可以参考以下基本配置(JavaConfig);
@Configuration
@EnableLdapRepositories(basePackages = "com.foo.ldap2.repositories", ldapTemplateRef="ldapTemplate2")
public class Ldap2Configuration {
@Bean
public LdapContextSource contextSource2() {
LdapContextSource contextSource= new LdapContextSource();
contextSource.setUrl(env.getRequiredProperty("ldap2.url"));
contextSource.setBase(env.getRequiredProperty("ldap2.base"));
contextSource.setUserDn(env.getRequiredProperty("ldap2.user"));
contextSource.setPassword(env.getRequiredProperty("ldap2.password"));
return contextSource;
}
@Bean(name="ldapTemplate2")
public LdapTemplate ldapTemplate2() {
return new LdapTemplate(contextSource2());
}
}
@Autowired
@Qualifier("ldapTemplate1")
private LdapTemplate ldapTemplate1;
然后您可以按照以下内容引用应用程序中的每个实例;
@Autowired
@Qualifier("ldapTemplate2")
private LdapTemplate ldapTemplate2;
ldaptemplate
旁注;如果LDAP目录的数量增加,那么最好实现ldaptemplate
工厂,该工厂接收连接详细信息并返回$(document).ready(function(){
/*this is using javascript*/
var table = document.getElementById("mytab1");
for (var i = 0, row; row = table.rows[i]; i++) {
if(i%2==0){
/*even row*/
console.log(row)
}else{
/*odd row*/
}
}
});
个实例(How to tweak the NLTK sentence tokenizer)。