我正在研究java web应用程序,我需要验证用户的密码
使用LDAP服务器我对此不太了解。我从应用服务器到LDAP的请求是
已使用证书文件加密但我仍需要使用SHA-256加密密码。
我该怎么办?
我的Java代码是:
Hashtable<String,String> env = new Hashtable<String,String>();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,"ldaps://" + ldap_url);
env.put(Context.SECURITY_AUTHENTICATION, auth_method);
env.put(Context.SECURITY_PRINCIPAL, "abcd123"+"@"+ldap_domain);
env.put(Context.SECURITY_CREDENTIALS, "mypassword");
env.put(Context.SECURITY_PROTOCOL,"ssl");
System.setProperty("javax.net.ssl.keyStore", keystorePath);
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
ctx = new InitialDirContext(env);
我得到了此this但无法使用SHA-256
答案 0 :(得分:0)
通常,我们希望您的LDAP服务器会加密密码。您只需要通过SSL发送文本。 (或使用StartTLS)
如果您使用的是SSL,则表示您已加密。否则,您需要使用SASL之类的东西,这需要客户端和服务器上的支持。
-Jim