2011-05-05 114 views
2

我有一個Ldap目錄從Microsoft Active Directory同步。Java - > LDAP帳戶密碼加密

這個Ldap包含很多賬號,每個賬號都有一個密碼屬性。

我必須開發一個Java程序,用戶必須使用他的AD登錄名和密碼登錄,但我不知道用於正確加密輸入密碼的方法。

我需要它與ldap密碼進行比較。

我還需要使用相同的密碼加密綁定新帳戶。

任何人都知道該怎麼辦?

+0

爲什麼你需要加密密碼?如果你的java程序使用LDAP來驗證用戶,你可以使用bind()api來驗證憑證。 – 2011-05-05 09:53:48

+1

我已經連接到LDAP目錄,現在我想在ldap上創建新帳戶(這已完成),用戶可以選擇他的密碼。我的問題是如何加密密碼? – FAjir 2011-05-11 09:11:22

回答

1

我發現帶彈簧的解決方案,

這裏的方法開始測試登錄/通夫婦:

AndFilter filter = new AndFilter(); 
filter.and(new EqualsFilter("objectclass", "person")).and(new EqualsFilter("cn", login)); 
boolean authentifie = ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter.toString(), password); 
1

首先,您可以使用帶有SSL的BIND,但這被認爲是一種跛腳的方式,可能會在某些系統上被禁用。一個真正安全的方式是使用SPNEGO-GSS,這不是微不足道的。你必須學習和了解Kerberos。這是一個很長的話題,但你可以用reading and going through everything here