【发布时间】:2013-05-23 04:50:15
【问题描述】:
我目前正在处理一个使用 Active Directory 和一些 LDAP 东西的小项目... 我尝试连接到 LDAP 服务器,但它总是给我同样的错误:
[LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1
据我所知,这意味着凭据错误,但我 100% 确定它们是正确的! 难道是我忘记了一个参数?
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://libertycity.ch:389/dc=libertycity,dc=ch");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.SECURITY_PRINCIPAL, "uid=" + username + ",ou=Users");
env.put("java.naming.ldap.attributes.binary", "objectSID");
DirContext ctx = new InitialDirContext(env);
我认为我的代码看起来不错,还是我遗漏了什么?可能是什么问题,我怎样才能找到它?
【问题讨论】:
-
松饼,我遇到的错误与您完全相同。客户正在输入正确的凭据,并且他们的 DN 看起来不错。在我的测试环境中,我从来没有遇到过这个错误!你的情况是什么?至少,这会给我一些线索。我真的很感谢你的帮助。谢谢。
-
这是我前段时间遇到的一个错误,但我记得问题不在于凭据...您的问题可能是您在身份验证期间在某处使用了错误的“OU” (例如,“ou=Users”可能不完整,因为您最后忘记添加域或其他内容......)我不会过多关注凭据,它们可能是正确的。而是尝试其他路径(所以所有带有“ou =”的东西),这可能会有所帮助;)
-
感谢松饼的回复。我会检查任何错误的搜索库。
-
我有一个与你们相似的错误,我在stackoverflow.com/questions/32166646/… 中提到了它。我通过 JXplorer 连接到 Ldap,所以我确定设置是正确的。但是我无法使用已经在 Ldap 中声明的用户登录到项目,并且我遇到了同样的错误。我如何知道在我的配置中使用正确的“OU”?我想知道你是否可以帮助我。
标签: java url active-directory ldap