Apache Directory Server LDAP设置

时间:2017-01-19 07:40:08

标签: java ldap apacheds

在我的组织中有CORP网络,我们有LDAP服务器,我可以通过java程序非常容易地连接该服务器,证明用户名(主要)&密码。下面是我连接到org LDAP服务器的java代码。

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,  "ldap://corp.testorg.com:10389");      
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "CORP\\username");
env.put(Context.SECURITY_CREDENTIALS, "password");
try
{
 DirContext ctx = new InitialDirContext(env);
 System.out.println("connected");
}

但我的问题是,我已经通过本地计算机上的apache DS创建了自己的LDAP服务器,然后尝试通过相同的程序连接到本地LDAP服务器,然后我必须提供基本dn,如下所示< / p>

put(Context.SECURITY_PRINCIPAL, "cn=username,ou=users,o=test")

为什么我必须使用用户名提供base dn我不理解。我错过了LDAP服务器上的一些配置,请告诉我。

1 个答案:

答案 0 :(得分:0)

SECURITY_PRINCIPAL支持的格式在很大程度上取决于服务提供商。通常,期望用户的可分辨名称,但Active Directory supports a couple of additional formats