我使用Spring 2.5.6和Spring安全2.0。春季安全 - 春季不檢查isAccountNonLocked爲UserDetails正確登錄
對於登錄嘗試,我在User類上實現了UserDetails類。所以User類在錯誤登錄後執行isAccountNonLocked()
(調度AuthenticationFailureBadCredentialsEvent
,我用Eventlistener
來處理)Spring從我的User類中調用這個函數來檢查賬戶是否被鎖定。我實現了這個如下:
public boolean isAccountNonLocked() {
if (this.getFailedLoginAttempts() >= MAX_FAILED_LOGIN_ATTEMPTS) {
return false;
}
return this.accountNonLocked;
}
這項工作極大的不良憑據,但是當我填寫了正確的憑據,他從來沒有調用這個函數。因此,如果您填寫了正確的憑證,則他不檢查用戶是否被鎖定,因此即使failedLoginAttempts
高於MAX_FAILED_LOGIN_ATTEMPTS
或賬戶被鎖定,他也會始終登錄。
我甚至實現AuthenticationSuccessEvent
,如果你在正確的憑據填補他處理這個registerd事件偵聽(做一些東西的好登錄後設置failedLoginAttempts回0)
這是一個錯誤在Spring 2.5.6 ?或者是我忘了的東西...