spring security 拦截错误密码

use*_*201 5 spring-security

我正在使用弹簧安全。我正在使用aspectj 记录错误的用户名或密码。我能够通过检查 loadUserByUsername 是否有异常来拦截错误的用户名。如何拦截错误的密码。

看起来 Spring 获取用户对象并根据用户密码检查输入的密码。我如何拦截此异常

提前致谢

Rag*_*ram 3

我对方面不太了解,所以这可能没有帮助。

首先,您需要问自己,您是否真的需要区分错误的用户名和错误的密码 - 特别是如果此信息返回给用户。

默认情况下,spring-security 不鼓励这样做,这就是为什么默认情况下它BadCredentialsException在任何情况下都会返回 a 。

Spring security3.0.x提供了一个public authenticate()方法(在AbstractUserDetailsAuthenticationProvider类中),它首先在 () 方法中检索用户protected retrieveUser,然后在该protected additionalAuthenticationChecks()方法中进行密码验证。

通过将属性设置hideUserNotFoundExceptionsfalsetrue默认情况下),authenticate()可以检查方法UserNotFoundException(如果用户错误)和BadCredentialsException密码错误。