CustomizeAuthenticationFailureHandler.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.welampiot.security;
  2. import com.welampiot.common.BaseResult;
  3. import com.welampiot.common.BusinessException;
  4. import com.welampiot.common.ResultEnum;
  5. import com.welampiot.utils.WebUtils;
  6. import org.springframework.security.core.AuthenticationException;
  7. import org.springframework.security.web.authentication.AuthenticationFailureHandler;
  8. import org.springframework.stereotype.Component;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import java.io.IOException;
  13. /**
  14. * 登录失败处理逻辑
  15. */
  16. @Component
  17. public class CustomizeAuthenticationFailureHandler implements AuthenticationFailureHandler {
  18. @Override
  19. public void onAuthenticationFailure(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException, BusinessException {
  20. //返回json数据失败信息
  21. // if (e instanceof AccountExpiredException) {
  22. // //账号过期
  23. // result = ResultTool.fail(ResultCode.USER_ACCOUNT_EXPIRED);
  24. // } else if (e instanceof BadCredentialsException) {
  25. // //密码错误
  26. // result = ResultTool.fail(ResultCode.USER_CREDENTIALS_ERROR);
  27. // } else if (e instanceof CredentialsExpiredException) {
  28. // //密码过期
  29. // result = ResultTool.fail(ResultCode.USER_CREDENTIALS_EXPIRED);
  30. // } else if (e instanceof DisabledException) {
  31. // //账号不可用
  32. // result = ResultTool.fail(ResultCode.USER_ACCOUNT_DISABLE);
  33. // } else if (e instanceof LockedException) {
  34. // //账号锁定
  35. // result = ResultTool.fail(ResultCode.USER_ACCOUNT_LOCKED);
  36. // } else if (e instanceof InternalAuthenticationServiceException) {
  37. // //用户不存在
  38. // result = ResultTool.fail(ResultCode.USER_ACCOUNT_NOT_EXIST);
  39. // }else{
  40. // //其他错误
  41. // result = ResultTool.fail(ResultCode.COMMON_FAIL);
  42. // }
  43. //处理编码方式,防止中文乱码的情况
  44. // httpServletResponse.setContentType("text/json;charset=utf-8");
  45. //塞到HttpServletResponse中返回给前台
  46. // httpServletResponse.getWriter().write(JSON.toJSONString(BaseResult.fail(ResultEnum.LOGIN_FAIL)));
  47. WebUtils.renderString(httpServletResponse,BaseResult.fail(ResultEnum.LOGIN_FAIL));
  48. }
  49. public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, BusinessException e) {
  50. if (e instanceof BusinessException) {
  51. WebUtils.renderString(response,BaseResult.fail("40101",e.getMessage(),""));
  52. return;
  53. }
  54. WebUtils.renderString(response,BaseResult.fail(ResultEnum.LOGIN_FAIL));
  55. }
  56. }