package com.moral.api.interceptor;
|
|
import com.alibaba.fastjson.JSON;
|
import com.moral.api.mapper.ManageLogMapper;
|
import com.moral.api.util.LogUtils;
|
import com.moral.constant.Constants;
|
import com.moral.constant.ResponseCodeEnum;
|
import com.moral.constant.ResultMessage;
|
import com.moral.util.TokenUtils;
|
import com.moral.util.WebUtils;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.PrintWriter;
|
@Slf4j
|
public class ManageInterceptor implements HandlerInterceptor {
|
|
@Override
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
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());
|
//记录到数据库日志
|
LogUtils.saveFailedRequestForManage(request,"token无效访问;url:"+request.getRequestURL()+";请求token:"+token);
|
return false;
|
}
|
//TokenUtils.extendTokenTime(token);
|
return true;
|
}
|
|
@Override
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
}
|
|
@Override
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
}
|
}
|