스프링 2.5.6 및 스프링 보안 2.0을 사용하고 있습니다.스프링 보안 - 올바른 로그인시 UserDetails에 대해 isAccountNonLocked가 확인되지 않습니다.
로그인 시도의 경우 User 클래스에 UserDetails 클래스를 구현합니다. 따라서 User 클래스는 잘못된 로그인 후에 isAccountNonLocked()
을 구현합니다. 을 전달하면 Eventlistener
으로 처리합니다. Spring은이 함수를 내 User 클래스에서 호출하여 계정이 잠겨 있는지 확인합니다. 나는 이것을 다음과 같이 구현합니다 :
public boolean isAccountNonLocked() {
if (this.getFailedLoginAttempts() >= MAX_FAILED_LOGIN_ATTEMPTS) {
return false;
}
return this.accountNonLocked;
}
잘못된 자격 증명을 사용하면 좋지만 정확한 자격 증명을 입력하면이 기능을 호출하지 않습니다. 따라서 사용자가 올바른 자격 증명을 입력하면 사용자가 잠겨 있는지 확인하지 않으므로 failedLoginAttempts
이 MAX_FAILED_LOGIN_ATTEMPTS
보다 높거나 계정이 잠겨 있어도 항상 로그인합니다.
나는 심지어 AuthenticationSuccessEvent
을 구현하고 올바른 자격 증명을 작성하면 그는 봄 2.5.6에
이 버그가 (좋은 로그인 후 다시 0으로 failedLoginAttempts를 설정하는 몇 가지 물건을)이 등록을 한 용의 EventListener를 처리하다 ? 아니면 내가 잊어 버린 것이지 ...