博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring security抛出AuthenticationException异常的原因
阅读量:4951 次
发布时间:2019-06-11

本文共 1769 字,大约阅读时间需要 5 分钟。

可能是因为密码不正确,特别是密码使用md5或者其它的加密算法加密之后,更是如此。

还有一点:

在UsernamePasswordAuthenticationFilter的子类中的attemptAuthentication方法中,只要去验证你自己的逻辑就可以了,不要在这里验证用户名,密码是否正确,因为这是UserDetailsService要干的事情。

比如我的attemptAuthentication方法中就是这样:

@Override    public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {           if (!request.getMethod().equals("POST")) {                  throw new AuthenticationServiceException("Authentication method not supported: " + request.getMethod());              }              //检测验证码              checkValidateCode(request);             String username = obtainUsername(request);              String password = obtainPassword(request);                          //为了辨别从前台进入的,还是从后台进入的            String type=request.getParameter(ENTRY);            request.getSession().setAttribute(USER_ENTRY, type);            if("bg".equals(type))            {                username="bg_"+username;            }else if("fg".equals(type))            {                username="fg_"+username;            }                                      //这里的username会传给UserDetailsService的loadUserByUsername方法,作为loadUserByUsername的参数。            UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, password);                            // 允许子类设置详细属性              setDetails(request, authRequest);                            // 运行UserDetailsService的loadUserByUsername 再次封装Authentication              AuthenticationManager authenticationManager = this.getAuthenticationManager();            Authentication authentication=authenticationManager.authenticate(authRequest);            return authentication;      }

 

转载于:https://www.cnblogs.com/passer1991/p/3457787.html

你可能感兴趣的文章
c++ operator
查看>>
apache 添加 ssl_module
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
getQueryString
查看>>
Servlet文件上传和下载的复习
查看>>
JavaScript笔记——正则表达式
查看>>
iOS PushMebaby
查看>>
网页消息类
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
日常一些出现bug的问题
查看>>
同时启动多个tomcat服务器
查看>>
怎么将iphone上的照片导出到本地文件
查看>>
Repeater+DataPagerSource分页
查看>>
模块化导出
查看>>
pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页
查看>>
Sphinx 2.0.8 发布,全文搜索引擎 Installing Sphinx on Windows
查看>>
pod
查看>>
ResultSet 可滚动性和可更新性
查看>>
VS2013 C++代码运行问题
查看>>