AuthInterceptor.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package cn.efunbox.audio.aop;
  2. import cn.efunbox.audio.entity.Device;
  3. import cn.efunbox.audio.service.DeviceService;
  4. import cn.efunbox.audio.utils.ApiCode;
  5. import cn.efunbox.audio.utils.HttpUtil;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.RequestHeader;
  8. import org.springframework.web.servlet.HandlerInterceptor;
  9. import org.springframework.web.servlet.ModelAndView;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import java.util.HashMap;
  13. import java.util.Map;
  14. /**
  15. * 用户验证拦截器
  16. * Created by yao on 17-9-29.
  17. */
  18. public class AuthInterceptor implements HandlerInterceptor {
  19. @Autowired
  20. DeviceService deviceService;
  21. @Override
  22. public boolean preHandle(HttpServletRequest request,
  23. HttpServletResponse response, Object handler) throws Exception {
  24. String id = request.getHeader("id");
  25. String token = request.getHeader("token");
  26. if(id==null)
  27. id = request.getParameter("id");
  28. if(token==null)
  29. token = request.getParameter("token");
  30. System.out.println("id:"+id+", token:"+token);
  31. if(id==null || token==null){
  32. System.out.println("id:"+id+",token:"+token);
  33. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  34. return false;
  35. }
  36. Device device = deviceService.GetOne(Long.valueOf(id));
  37. System.out.println(device.toString());
  38. if(device==null ||
  39. ((device.getTokenNew()==null || false == device.getTokenNew().equalsIgnoreCase(token))
  40. && (device.getTokenOld()==null || false == device.getTokenOld().equalsIgnoreCase(token)))){
  41. HttpUtil.responseApiCode(request,response, ApiCode.INVALID_TOKEN);
  42. return false;
  43. }
  44. if(device.getStatus()<0){
  45. HttpUtil.responseApiCode(request, response, ApiCode.ACCESS_DENIED);
  46. return false;
  47. }
  48. if(device.getTokenOld()!=null && device.getTokenOld().equalsIgnoreCase(token)){
  49. device.setTokenNew(device.getTokenOld());
  50. device.setTokenOld("");
  51. deviceService.Update(device);
  52. }else if(device.getTokenOld()!=null && false==device.getTokenOld().equalsIgnoreCase(token)){
  53. device.setTokenOld("");
  54. deviceService.Update(device);
  55. }
  56. return true;
  57. }
  58. @Override
  59. public void postHandle(HttpServletRequest request,
  60. HttpServletResponse response, Object handler,
  61. ModelAndView modelAndView) throws Exception {
  62. }
  63. @Override
  64. public void afterCompletion(HttpServletRequest request,
  65. HttpServletResponse response, Object handler, Exception ex)
  66. throws Exception {
  67. }
  68. }