BaseController.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.lightinit.hsdatashow.controller;
  2. import com.lightinit.hsdatashow.common.WebUtilsPro;
  3. import com.lightinit.hsdatashow.json.pojo.ErrorEntity;
  4. import com.lightinit.hsdatashow.json.pojo.LoginResult;
  5. import org.apache.shiro.authc.AuthenticationException;
  6. import org.apache.shiro.authz.AuthorizationException;
  7. import org.apache.shiro.authz.UnauthenticatedException;
  8. import org.apache.shiro.authz.UnauthorizedException;
  9. import org.codehaus.jackson.map.ObjectMapper;
  10. import org.springframework.web.bind.annotation.ExceptionHandler;
  11. import org.springframework.web.servlet.view.InternalResourceViewResolver;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. import java.io.PrintWriter;
  15. /**
  16. * Created by Mr.Yao on 2017/4/18.
  17. */
  18. public abstract class BaseController
  19. {
  20. /***
  21. * 登录异常返回信息
  22. * @param request 输入
  23. * @param response 输出
  24. * @return AJAX返回JSON数据格式 浏览器访问返回HTML格式
  25. */
  26. @ExceptionHandler({UnauthenticatedException.class,AuthenticationException.class})
  27. public String authenticationException(HttpServletRequest request, HttpServletResponse response){
  28. if(WebUtilsPro.isAjaxRequest(request)){
  29. LoginResult loginResult=new LoginResult();
  30. loginResult.setStatus(2008);
  31. loginResult.setMessage(ErrorEntity.getMsg(loginResult.getStatus()));
  32. writeJson(loginResult,response);
  33. return null;
  34. }else{
  35. return InternalResourceViewResolver.REDIRECT_URL_PREFIX+"/passport/login.htm";
  36. }
  37. }
  38. /***
  39. * 授权异常返回信息
  40. * @param request 输入
  41. * @param response 输出
  42. * @return AJAX返回JSON数据格式 浏览器访问返回HTML格式
  43. */
  44. @ExceptionHandler({ UnauthorizedException.class, AuthorizationException.class })
  45. public String authorizationException(HttpServletRequest request, HttpServletResponse response) {
  46. if (WebUtilsPro.isAjaxRequest(request)) {
  47. LoginResult loginResult=new LoginResult();
  48. loginResult.setStatus(2009);
  49. loginResult.setMessage(ErrorEntity.getMsg(loginResult.getStatus()));
  50. writeJson(loginResult,response);
  51. return null;
  52. } else {
  53. return InternalResourceViewResolver.REDIRECT_URL_PREFIX+"/403.html";
  54. }
  55. }
  56. private void writeJson(LoginResult result,HttpServletResponse response){
  57. PrintWriter out=null;
  58. try{
  59. response.setContentType("application/json; charset=utf-8");
  60. out = response.getWriter();
  61. ObjectMapper objectMapper = new ObjectMapper();
  62. out.write(objectMapper.writeValueAsString(result));
  63. }catch (Exception e){
  64. e.printStackTrace();
  65. }finally {
  66. if(out!=null)
  67. out.close();
  68. }
  69. }
  70. }