我正在爲我的一個Java應用程序設置openLDAP。用戶名和密碼存儲在openLDAP中,用戶可以通過應用程序更新密碼(使用javax.naming.directory API)。我將我們的用戶從現有的Sun Directory Server導入到openLDAP中。導入成功,密碼以SSHA格式加密。我注意到,當我從應用程序更新密碼時,它以「純文本」格式存儲它。當我通過Apache Directory Studio查看密碼時,我可以取消隱藏密碼。大量的搜索後,我試圖在slapd.conf文件中設置「密碼哈希{SSHA}」,並沒有幫助我。我在一個Windows環境。我傳遞密碼以純文本格式打開LDAP。代碼中沒有加密。我知道我可以在應用程序中加密它,但我更願意使用openLDAP來爲我做。請讓我知道我是否可以在openLDAP方面做任何事情。OpenLDAP - 將userPassword另存爲PlainText
這是我今天用來修改密碼的JAVA代碼。過去7年來,這在我們現有的環境中運行良好。
ModificationItem[] newAttribs = new ModificationItem[1];
Attribute passwordAttrib = new BasicAttribute(DirectoryConstants.USER_PASSWORD, password);
ModificationItem passwordItem = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, passwordAttrib);
newAttribs[0] = passwordItem;
.....
DirContext ctx = this.getContext();
ctx.modifyAttributes(DirectoryConstants.USER_UID + "=" + userId + "," + ou, newAttribs);
如果他使用密碼策略覆蓋,他還需要使用擴展密碼修改操作。 – EJP 2013-12-04 00:31:35