今天项目提出了一个改进的需求就是说登录的时候要求提示具体的错误,是用户名输入错误,导致的用户不存在,还是密码输入错误,这些是需要进行提示的。
首先需要看源码。
DaoAuthenticationProvider ——》 AbstractUserDetailsAuthenticationProvider的authenticate函数
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
Assert.isInstanceOf(UsernamePasswordAuthenticationToken.class, authentication, () -> {
return this.messages.getMessage("AbstractUserDetailsAuthenticationProvider.onlySupports", "Only UsernamePasswordAuthenticationToken is supported");
});
String username = authentication.getPrincipal() == null ? "NONE_PROVIDED" : authentication.getName();
boolean cacheWasUsed = true;
UserDetails user = this.userCache.getUserFromCache(username);
if (user == null) {
cacheWasUsed = false;
try {