package com.ltkj.framework.config;
|
|
import com.alibaba.fastjson.JSON;
|
import com.google.gson.Gson;
|
import com.ltkj.common.db.DataSourceContextHolder;
|
import com.ltkj.hosp.domain.Wxuser;
|
import org.springframework.core.annotation.Order;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
@Order(1)
|
public class DBChangeInterceptor implements HandlerInterceptor {
|
@Override
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
String token = request.getHeader("token");
|
boolean verifyToken = JwtUtils.verifyToken(token);
|
if (!verifyToken) {
|
response.setStatus(401);
|
return false;
|
}
|
Wxuser wxuser = new Gson().fromJson(JSON.toJSONString(JwtUtils.getClaims(token).get("wxuser")),Wxuser.class);
|
UserHoder.set(wxuser);
|
return true;
|
}
|
|
@Override
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
DataSourceContextHolder.setDataSourceKey("default");
|
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
|
}
|
}
|