package com.moral.api.interceptor; 
 | 
  
 | 
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; 
 | 
  
 | 
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)) { 
 | 
            return true; 
 | 
        }*/ 
 | 
        String token = request.getHeader("token"); 
 | 
        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; 
 | 
        } 
 | 
        //TokenUtils.extendTokenTime(token); 
 | 
        return true; 
 | 
    } 
 | 
} 
 |