Java 응용 프로그램에서 LDAPS를 사용하여 RedHat 디렉토리 서버/HP UX 디렉토리 서버에 액세스하려면 어떻게합니까? LDAP를 통해 액세스하려고하는데 잘 작동하지만 LDAPS를 사용하는 동안 서버와의 연결이 설정되지 않습니다. 내가 ldap
하여 ldaps
를 교체 할 경우LDAPS를 통해 Java 코드를 사용하여 RedHat Directory 서버에서 사용자 비밀번호를 재설정하는 방법은 무엇입니까?
public void setPassword(String userDn,String password) {
InitialDirContext ctx=null;
DirContext connection;
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
String systemname = "ldaps://myserver:636";
env.put(Context.PROVIDER_URL, systemname);
env.put(Context.SECURITY_PRINCIPAL, "cn=directory manager");
env.put(Context.SECURITY_CREDENTIALS, "MySecret");
ctx = new InitialDirContext(env);
connection = (DirContext)ctx;
connection.lookup("dc=mydomain,dc=com");
ModificationItem[] mods = new ModificationItem[1];
Attribute mod0 = new BasicAttribute("userpassword",password);
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod0);
connection.modifyAttributes(userDn, mods);
connection.close();
}
위의 코드는 잘 작동 : 여기
가 작동하지 않습니다 내 코드입니다.하지만 LDAPS에서도 작동하려면 코드가 필요합니다. 일부 사이트에서는 키 저장소, 인증서 등의 필요성을 언급하지만 이러한 항목에 대해서는 알지 못합니다.
"작동하지 않음"은 무엇을 의미합니까? 오류 메시지의 예외가 있습니까? –
은 ssl 포트 '636'이 아닙니까? 단순히 그 문제인 경우 내 대답은 완전한 쓰레기 일 수 있습니다. – Petesh
아니요 포트 번호 '636'에도 작동하지 않습니다. – Arun