在Spring Security中,如果用戶名/密碼不正確,我們可能會得到錯誤的證書異常。彈簧安全性錯誤憑據區分無效的用戶名或密碼
從DOC:Spring Framework Authentication
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
org.springframework.security.core.AuthenticationException
org.springframework.security.authentication.BadCredentialsException
是否有任何異常類或方法無效的用戶名或密碼無效的區分?
類似以下內容:
catch(BadCredentialsException e) {
if(usernameInvalid) {
// invalid username
} else {
// password invalid
}
}
UPDATE:
public class SampleDaoAuthenticationProvider extends DaoAuthenticationProvider {
@Override
protected void additionalAuthenticationChecks(UserDetails
userDetails, UsernamePasswordAuthenticationToken authentication)
throws AuthenticationException {
setHideUserNotFoundExceptions(false);
super.additionalAuthenticationChecks(userDetails, authentication);
}
}
我會做呼叫setHideUserNotFoundException在構造函數來代替。 – JEY
哪個構造函數?我只能在這裏看到void方法。你說使用構造函數SampleDaoAuthenticationProvider來初始化它我認爲。 –
添加一個公共SampleDaoAuthenticationProvider(){super(); setHideUserNotFoundException(false);} – JEY