在grails中,我可以設置密碼字段的最小大小限制爲5(任意)。問題是我使用彈簧安全服務來編碼我的密碼,編碼/加密的密碼遠遠長於5個字符,幾乎不管我輸入什麼值。驗證grails中的加密密碼
另一個論壇響應建議在save方法中進行驗證。有沒有人解決這個問題,並知道解決它的方法?
Spring安全不提供解碼方法(可能出於安全目的)...所以我想一個想法是獲得一個不同的密碼編碼器,可以解密密碼以進行驗證......但我的本能說春季安全離開了這一點,一個很好的理由,也許我應該這麼做......
static constraints = {
username(blank: false, unique: true)
password(minSize: 5, blank: false, unique: true,
validator: { passwd, user ->
return passwd != user.username
})
passwordRepeat(nullable: false,
validator: { passwd2, user ->
return passwd2 == user.password
})
}
所以我使用的是靜態的約束來驗證,因爲大多數其他變量驗證這種方式。
我很抱歉無法讀取評論。
謝謝 -Asaf
編輯:我認爲,一個簡單的解決方法是如上面提到的,這樣做的保存方法(加密前)的驗證,但我只是覺得有人的地方必須有應對與此前的問題。我的意思是,有那麼多需要密碼的網站,如果它太短,如果它不包含小寫和大寫字母,如果它沒有符號,就會對你大吼......如何做到各種各樣的他們使用的驗證方法?
即時通訊不知道是什麼問題....你如何驗證密碼? – hvgotcodes 2011-05-19 19:10:12
靜態約束= { \t \t用戶名(空白:假的,獨特的:真) \t \t密碼(minSize屬性:5,空白:假的,獨特的:真, \t \t \t驗證:{passwd中,用戶 - > \t \t \t \t return passwd!= user。用戶名 \t \t}) \t \t passwordRepeat(可空:假的, \t \t驗證:{passwd2,用戶 - > \t \t \t回passwd2 == user.password的\t \t \t}) \t} 所以我使用靜態約束來驗證,因爲大多數其他變量都以這種方式進行驗證。不幸的是,這個驗證只有在密碼被加密後才能完成。 – Asaf 2011-05-19 19:19:57
這是在評論中無法閱讀,請編輯您的問題。 – hvgotcodes 2011-05-19 19:24:11