如何使用java编写LDAP客户端

时间:2016-03-16 07:32:59

标签: java openldap

我的要求是我必须使用java连接LDAP服务器。我给管理员

IP :             
HOST :           
LDAP PORT :      
LDAP USER NAME : 
PasSWORD :   

连接LDAP的这些细节。现在我想使用JAVA来包装ldap客户端。

任何人都建议如何继续?我不知道如何继续。

3 个答案:

答案 0 :(得分:1)

有几种方法,包括但不限于:

  • JNDI
  • UnboundID API
  • Spring API
  • Netscape API(现在在Mozilla.org)
  • Novell API
  • ...

答案 1 :(得分:0)

如果您使用的是Java EE,请使用JNDI访问LDAP: https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html

或者如果您使用Spring尝试Spring LDAP: http://projects.spring.io/spring-ldap/

答案 2 :(得分:0)

使用spring将非常容易。在你配置的任何方式中定义xml或java中的bean。对于XML

<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
    <property name="url" value="${ldap.url}" />
    <property name="base" value="${ldap.base}" />
    <property name="userDn" value="${ldap.userdn}" />
    <property name="password" value="${ldap.password}" />
</bean>

<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
    <constructor-arg ref="contextSource" />
</bean>

使用Property Place Holder加载这些属性标记。 在所需的课程中使用LdapTemplate

@Autowired(required = false)
private LdapTemplate ldapTemplate;

使用LdapTemplate

的示例查询
    public boolean isUserExistsInLdap(String emailId, String password) {
        boolean auth = false;
            try {
                auth = ldapTemplate.authenticate("","mail="
                        + emailId, password);
            } catch (Exception e) {
                e.printStackTrace();

            }
          return auth;
    }