|
|
@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import cn.hutool.jwt.JWT;
|
|
|
|
import cn.hutool.jwt.JWT;
|
|
|
|
import cn.hutool.jwt.JWTUtil;
|
|
|
|
import cn.hutool.jwt.JWTUtil;
|
|
|
|
|
|
|
|
import com.supervision.police.dto.user.UserInfoDTO;
|
|
|
|
import com.supervision.utils.TokenUtil;
|
|
|
|
import com.supervision.utils.TokenUtil;
|
|
|
|
import jakarta.servlet.http.Cookie;
|
|
|
|
import jakarta.servlet.http.Cookie;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
@ -21,16 +22,24 @@ import java.util.Map;
|
|
|
|
@Slf4j
|
|
|
|
@Slf4j
|
|
|
|
public class JwtInterceptor implements HandlerInterceptor {
|
|
|
|
public class JwtInterceptor implements HandlerInterceptor {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private UserInfoDTO forgeryUser;
|
|
|
|
public JwtInterceptor() {
|
|
|
|
public JwtInterceptor() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setForgeryUser(UserInfoDTO forgeryUser) {
|
|
|
|
|
|
|
|
this.forgeryUser = forgeryUser;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
|
|
|
//请求消息头获取用户ID
|
|
|
|
//请求消息头获取用户ID
|
|
|
|
String token = findTokenInRequest(request);
|
|
|
|
String token = findTokenInRequest(request);
|
|
|
|
if (StrUtil.isBlank(token)) {
|
|
|
|
if (StrUtil.isBlank(token)) {
|
|
|
|
|
|
|
|
if (forgeryUser != null){
|
|
|
|
|
|
|
|
JWT jwt = JWTUtil.parseToken(TokenUtil.creatToken(JSONUtil.toJsonStr(forgeryUser)));
|
|
|
|
|
|
|
|
cacheAuth(jwt);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
// 如果是swagger来的接口,说明这里是测试的,会伪造一个用户
|
|
|
|
// 如果是swagger来的接口,说明这里是测试的,会伪造一个用户
|
|
|
|
String referer = request.getHeader("Referer");
|
|
|
|
String referer = request.getHeader("Referer");
|
|
|
|
if (StrUtil.isNotBlank(referer) && StrUtil.contains(referer, "swagger-ui")) {
|
|
|
|
if (StrUtil.isNotBlank(referer) && StrUtil.contains(referer, "swagger-ui")) {
|
|
|
|