在之前的若依版本中,没有登录时账号密码错误超过5次后会禁止登录10分钟,所以直接调用若依的 Authentication进行验证就可以,但是在 后来的若依版本 中更新了如果账号密码错误就会禁止登录10分钟后重试。所以在UserDetails中多了这么一行代码
这行代码走到验证密码的时候就看不到后面的流程了,但是token为空,所以在前面的
authentication = authenticationManager
.authenticate(new UsernamePasswordAuthenticationToken(userName, passWord));
authentication 为空,然后就会判断账号密码错误
要解决这个问题,有两个办法
第一,把 passwordService.validate(user);这行代码删除
第二,增加两行代码
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userName, passWord);
AuthenticationContextHolder.setContext(authenticationToken);
增加这两行代码会获取token,这样就不会报错