|  |  | 
 |  |  | import javax.servlet.http.HttpServletRequest; | 
 |  |  | import javax.servlet.http.HttpServletResponse; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import com.moral.constant.ResponseCodeEnum; | 
 |  |  | import com.moral.constant.ResultMessage; | 
 |  |  | import com.moral.util.WebUtils; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.stereotype.Component; | 
 |  |  | import org.springframework.web.method.HandlerMethod; | 
 |  |  | import org.springframework.web.servlet.HandlerInterceptor; | 
 |  |  |  | 
 |  |  | import com.moral.util.TokenUtils; | 
 |  |  |  | 
 |  |  | @Component | 
 |  |  | import java.io.PrintWriter; | 
 |  |  |  | 
 |  |  | @Slf4j | 
 |  |  | public class WebInterceptor implements HandlerInterceptor { | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { | 
 |  |  |         if (!(handler instanceof HandlerMethod)) { | 
 |  |  |         /*if (!(handler instanceof HandlerMethod)) { | 
 |  |  |             return true; | 
 |  |  |         } | 
 |  |  |         }*/ | 
 |  |  |         String token = request.getHeader("token"); | 
 |  |  |         if (token == null) { | 
 |  |  |         boolean result = TokenUtils.checkToken(token); | 
 |  |  |         if (!result) { | 
 |  |  |             ResultMessage resultMessage = ResultMessage.fail(ResponseCodeEnum.TOKEN_INVALID.getCode(), | 
 |  |  |                     ResponseCodeEnum.TOKEN_INVALID.getMsg()); | 
 |  |  |             response.setCharacterEncoding("UTF-8"); | 
 |  |  |             response.setContentType("text/html; charset=utf-8"); | 
 |  |  |             PrintWriter writer = response.getWriter(); | 
 |  |  |             writer.print(JSON.toJSONString(resultMessage)); | 
 |  |  |             log.info("token无效访问"); | 
 |  |  |             log.info("ip:"+ WebUtils.getIpAddr(request)); | 
 |  |  |             log.info("请求URL:"+request.getRequestURL()); | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             //校验token | 
 |  |  |             TokenUtils.checkToken(token); | 
 |  |  |             //延长token | 
 |  |  |             TokenUtils.extendTokenTime(token); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |         //TokenUtils.extendTokenTime(token); | 
 |  |  |         return true; | 
 |  |  |     } | 
 |  |  | } |