spring security抛出AuthenticationException异常的原因

发布时间:2016-12-6 16:10:58 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"spring security抛出AuthenticationException异常的原因",主要涉及到spring security抛出AuthenticationException异常的原因方面的内容,对于spring security抛出AuthenticationException异常的原因感兴趣的同学可以参考一下。

可能是因为密码不正确,特别是密码使用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; }  

上一篇:Remote Debugging Chrome on Android
下一篇:TIME_WAIT状态

相关文章

相关评论