使用 LdapTemplate 在Spring LDAP,我有这样的代码:

Object object=null;
try{
    String dn = "cn=readers,ou=groups,dc=mycompany, dc=com";
    object = this.ldapTemplate.lookup(dn);
} catch(final NameNotFoundException e){
    // create Object
}

但因为我读过我的约书亚·布洛克我知道,异常不应被用于控制流。有没有一种方法来查找一个DN,看是否存在不如果没有抛出异常?必须有,但我不能找到它。我在寻找的代码是这样的(或类似):

String dn = "cn=readers,ou=groups,dc=mycompany, dc=com";
Object object=this.ldapTemplate.someMethod(dn);
if(object==null){
    // create Object
}

任何人可以帮助?

BTW:刚刚看的JavaDoc不会帮助。无的方法即掷NameNotFoundException在的JavaDoc这么说。

有帮助吗?

解决方案

lookup()方法仅假定当你知道某些该DN的存在是为了被使用。这通常是因为你已经搜索并发现了一个用户或组之前,并缓存DN从服务器返回。

如果你正在寻找的东西,可能会或可能不会在那里,使用正确的API是ldapTemplate.search(),用适当的过滤器。这个返回在没有结果发现它返回一个空列表,而不是抛出异常结果的列表,并且在这种情况。

其他提示

其实,春天迫使你在这里使用异常流量控制(即它不是你的错,这是他们的决定)。

我LdapTemplate几个月前的工作,我不能更好地找到任何然后捕获该异常和评估局势“用户未找到”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top