package com.highdatas.mdm.util;
|
|
import com.alibaba.fastjson.JSON;
|
import com.highdatas.mdm.entity.TUser;
|
import com.highdatas.mdm.pojo.CodeMsg;
|
import com.highdatas.mdm.pojo.Result;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpSession;
|
import java.io.IOException;
|
import java.io.PrintWriter;
|
|
/**
|
* @author kimi
|
* @description
|
* @date 2019-12-13 13:29
|
*/
|
|
@Slf4j
|
@Service(value = "testInterceptor")
|
public class CommonInterceptor implements HandlerInterceptor{
|
@Autowired
|
UserRoleClient userRoleClient;
|
|
@Override
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
|
String url = request.getRequestURI();
|
log.info(url);
|
|
String token = request.getHeader("token");
|
String userId = request.getHeader("userId");
|
if ("/".equalsIgnoreCase(url)) {
|
return true;
|
}
|
if (StringUtils.isEmpty(userId)) {
|
log.error("无登陆信息");
|
return false;
|
}
|
|
token= "U001";
|
if (StringUtils.isEmpty(token)) {
|
log.error("token is null");
|
token= "U001";
|
}
|
HttpSession session = request.getSession();
|
|
TUser user = userRoleClient.getTUserById(userId);
|
if (user == null) {
|
log.error("user not found by : " + userId);
|
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
response.setCharacterEncoding("UTF-8");
|
response.setContentType("application/json; charset=utf-8");
|
Result<Object> error = Result.error(CodeMsg.ERROR_TOKEN);
|
PrintWriter out = response.getWriter();
|
out.write(JSON.toJSONString(error));
|
out.flush();
|
out.close();
|
return false;
|
}
|
|
session.setAttribute("user", user);
|
return true;
|
}
|
|
@Override
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
|
//请求处理后
|
|
}
|
}
|