내가 자바 LDAP 연결 문제와 stucked 일을 해요 * 전액 작업 솔루션과 답변 아래 글.
이
는 LDAP 서버에 연결하는 나의 방법 :public boolean authenticate(String user, String password) {
StringBuilder url = new StringBuilder("ldap://");
url.append("10.0.0.1");
url.append(":");
url.append(389);
StringBuilder securityPrincipal = new StringBuilder("uid=");
securityPrincipal.append(user);
securityPrincipal.append(",");
securityPrincipal.append("dc=XXXXX,dc=YYY,dc=ZZ");
Hashtable<String, String> env;
env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url.toString());
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, securityPrincipal.toString());
env.put(Context.SECURITY_CREDENTIALS, password);
System.out.println(url);
System.out.println(securityPrincipal.toString());
try {
ldap = new InitialLdapContext(env, null);
} catch (NamingException e) {
e.printStackTrace();
return false;
}
return true;
}
보안 및 공개 이유로, 나는 XXXXX, YYY와 ZZ는 "직류"ommited 및 LDAP 서버의 IP를 변경했습니다.
나는 PHP 소프트웨어 (GLPI)에 동일한 조합을 사용했으며 매력처럼 작동했습니다.
javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
전체 DN은 이것이다 : 그러나, 하나님을 위하여, 자바는 항상이 오류가 나에게주는이 LDAP configurarion을 받아 들일 수 없다
변수 사용자가 "tiagoadami"변수 "인수"로 가득
uid=tiagoadami,dc=XXXXX,dc=YYY,dc=ZZ
일반 텍스트 암호로 채워집니다.
이것은 매우 성가신 일입니다. 내 암호가 정확하며 사용자 이름이 "tiagoadami"인 모든 응용 프로그램과 암호로 인증됩니다. 나는 지금 옵션이 없어. 누구든지 나를 도울 수 있습니까?
디렉토리, OpenLdap.)? – BillFromHawaii
사용자의 DN이 uid와 dc 사이의 개체 유형이 누락되었습니다. – BillFromHawaii
리눅스를 실행하는 OpenLdap 3입니다. 문제는 다음과 같습니다. 익명 로그인은 괜찮습니다. - 보안 오류로 인한 희망 -이 DN이 내 사용자에게 맞는지 알 수있을 때 익명으로 모든 LDAP 트리를 가져올 수 있습니다. 이 동일한 DN을 GLPI로 설정하면 완벽하게 작동합니다. LdapExplorerTool2라는 Windows 도구로이 DN을 시도했지만 작동하지 않습니다. 내가 뭘 놓치고 있니? – adamitj