BaseAuthenctiationFailureHandler.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. *
  3. */
  4. package com.yihu.base.security.hander;
  5. import com.fasterxml.jackson.databind.ObjectMapper;
  6. import com.yihu.base.security.vo.SimpleResponse;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.http.HttpStatus;
  11. import org.springframework.security.authentication.BadCredentialsException;
  12. import org.springframework.security.core.AuthenticationException;
  13. import org.springframework.security.core.userdetails.UsernameNotFoundException;
  14. import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;
  15. import org.springframework.social.ApiException;
  16. import org.springframework.stereotype.Component;
  17. import javax.servlet.ServletException;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.io.IOException;
  21. /**
  22. * @author chenweida
  23. */
  24. @Component("BaseAuthenctiationFailureHandler")
  25. public class BaseAuthenctiationFailureHandler extends SimpleUrlAuthenticationFailureHandler {
  26. private Logger logger = LoggerFactory.getLogger(getClass());
  27. @Autowired
  28. private ObjectMapper objectMapper;
  29. // @Autowired
  30. // private ExceptionController exceptionController;
  31. @Override
  32. public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
  33. AuthenticationException exception) throws IOException, ServletException{
  34. logger.info("登录失败");
  35. if(exception instanceof UsernameNotFoundException){
  36. request.getRequestDispatcher("/security/exception/usernameNotFoundException?msg="+exception.getMessage()).forward(request,response);
  37. }else if(exception instanceof BadCredentialsException){
  38. request.getRequestDispatcher("/security/exception/badCredentialsException?msg="+exception.getMessage()).forward(request,response);
  39. }
  40. // response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
  41. // response.setContentType("application/json;charset=UTF-8");
  42. // response.getWriter().write(objectMapper.writeValueAsString(new SimpleResponse(exception.getMessage())));
  43. }
  44. }