如何使用Java應用程序中的LDAPS訪問RedHat目錄服務器/ HP UX目錄服務器?我試圖通過LDAP訪問它,它工作正常,但使用LDAPS時,它不建立與服務器的連接。如何使用Java代碼通過LDAPS重置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();
}
上面的代碼工作正常,如果我通過ldap
更換ldaps
。
但我需要的代碼也適用於LDAPS。有些網站提到需要密鑰庫,證書等,但我不知道這些。
「不工作」是什麼意思?你有什麼異常的錯誤信息? –
是不是ssl端口'636'?我的答案可能是完全垃圾,如果只是這個問題 – Petesh
沒有它的端口號'636'也不工作。 – Arun