package com.highdatas.mdm.util;
|
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.highdatas.mdm.entity.TUser;
|
import com.highdatas.mdm.pojo.CodeMsg;
|
import com.highdatas.mdm.pojo.Result;
|
import com.highdatas.mdm.service.ITUserService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
|
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
|
ITUserService userService;
|
|
@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";
|
/* response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
// String url = "/industryiot/Login.html";
|
// response.sendRedirect(url);
|
|
response.setCharacterEncoding("UTF-8");
|
response.setContentType("application/json; charset=utf-8");
|
Result<Object> error = Result.error(CodeMsg.ERROR_TOKEN);
|
PrintWriter out = null ;
|
out = response.getWriter();
|
out.write(JSON.toJSONString(error));
|
out.flush();
|
out.close();
|
return false;*/
|
}
|
HttpSession session = request.getSession();
|
|
String baseUrl = "";
|
LinkedMultiValueMap<String, String> body=new LinkedMultiValueMap();
|
|
body.add("token", token);
|
//String userId = token;
|
// ObjectMapper objectMapper = new ObjectMapper();
|
// objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
// TUser user = objectMapper.readValue(login, TUser.class);
|
// String userId = HttpUtils.HttpRestClient(baseUrl, HttpMethod.GET, body);
|
TUser user = userService.selectOne(new EntityWrapper<TUser>().eq("user_id", userId));
|
if (user == null) {
|
log.error("user not found by : " + userId);
|
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
// String url = "/industryiot/Login.html";
|
// response.sendRedirect(url);
|
|
response.setCharacterEncoding("UTF-8");
|
response.setContentType("application/json; charset=utf-8");
|
Result<Object> error = Result.error(CodeMsg.ERROR_TOKEN);
|
PrintWriter out = null ;
|
out = response.getWriter();
|
out.write(JSON.toJSONString(error));
|
out.flush();
|
out.close();
|
|
return false;
|
}
|
|
session.setAttribute("user", user);
|
return true;
|
}
|
}
|