LDAP 的认证问题 Authentication

最近一直在ldap开发项目中 对ldap方方面面都接触到很多 之前很多都是基本的操作,增删改查,配事物,连接池,这些只要会用spring的人应该都可以很轻松的弄出来,美国空间,其实spring-ldap的提供了很好的说明。接下来 说下认证的问题,香港虚拟主机,这个是我今天才弄好的。

可以看到官网的文档上有个相关的认证的方法 在第10章,但是有一个问题,如果你没有按照文档去配置事物的话 他是可以认证通过的,如果你按照文档去配了事物 再去调用验证发放他会报异常 说你找不到 ContextSource 这是因为在第6章的时候 它把跟服务器连接的id改为contextSourceTarget

但是在LDAP中contextSource这个 不只是一个id那么简单 因为在LDAP的世界里 他有一个接口也叫ontextSource 是用来验证使用的 所以你在不配置事物的时候是可以用的。

接下来上两段代码,美国服务器,事物是与jpa集合好的:

<bean><property value=”ldap://127.0.0.1:389″ /><property value=”cn=Directory Manager ” /><property value=”******” /></bean> <bean><constructor-arg ref=”contextSource” /></bean><bean><constructor-arg ref=”contextSourceTarget” /> </bean> <bean><property ref=”contextSourceTarget”/><property ref=”entityManagerFactory”/><!– 这个是jpa的 –> </bean><tx:annotation-driven transaction-manager=”transactionManager” />

改成这样就可以以确保你的认证方法是可用的了,同时还会有事物。

下面是认证方法,官网拔下来的0.0:

public boolean authentication(String uid){CollectingAuthenticationErrorCallback errorCallback = new CollectingAuthenticationErrorCallback();String filter = “(&(objectclass=inetOrgPerson)(uid=” + uid + “))”;boolean result = ldapTemplate.authenticate(“”, filter.toString(), “123456”, errorCallback);if (!result) {Exception error = errorCallback.getError();// error is likely of type org.springframework.ldap.AuthenticationExceptionerror.printStackTrace();}return result;}

OK,认证成功为true 不成功就是false 还带异常。

本文出自 “记下就对了” 博客,请务必保留此出处

而不去欣赏今天就开在我们窗口的玫瑰。

LDAP 的认证问题 Authentication

相关文章:

你感兴趣的文章:

标签云: