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 (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 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 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().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 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; } }