mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-08 20:49:00 +08:00
fix(report): 在SecurityRequestFilter中添加从cookie中获取token的逻辑
- 当请求头中不存在token时,尝试从cookie中获取token,增强安全性和兼容性。
This commit is contained in:
1 parent
2411399929
commit
e73795310f
1 file changed
+17
-6
+17
-6
@@ -2,13 +2,18 @@ package com.pig4cloud.pigx.report.config;
|
||||
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.servlet.JakartaServletUtil;
|
||||
import cn.hutool.http.ContentType;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.pig4cloud.pigx.admin.api.feign.RemoteTokenService;
|
||||
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
|
||||
import com.pig4cloud.pigx.common.core.constant.SecurityConstants;
|
||||
import com.pig4cloud.pigx.common.core.util.RetOps;
|
||||
import io.springboot.plugin.goview.common.domain.AjaxResult;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.Cookie;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
@@ -20,14 +25,11 @@ import org.springframework.util.AntPathMatcher;
|
||||
import org.springframework.util.PathMatcher;
|
||||
import org.springframework.web.filter.OncePerRequestFilter;
|
||||
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
@@ -40,6 +42,7 @@ import java.util.Optional;
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
public class SecurityRequestFilter extends OncePerRequestFilter {
|
||||
|
||||
public static final String TOKEN = "token";
|
||||
private final PathMatcher pathMatcher = new AntPathMatcher();
|
||||
|
||||
private final RemoteTokenService remoteTokenService;
|
||||
@@ -65,9 +68,17 @@ public class SecurityRequestFilter extends OncePerRequestFilter {
|
||||
}
|
||||
|
||||
// 获取请求头中的token和tenantId参数
|
||||
String accessToken = request.getHeader("token");
|
||||
String accessToken = request.getHeader(TOKEN);
|
||||
String tenantId = request.getHeader(CommonConstants.TENANT_ID);
|
||||
|
||||
|
||||
if (StrUtil.isBlank(accessToken)) {
|
||||
Map<String, Cookie> cookieMap = JakartaServletUtil.readCookieMap(request);
|
||||
if (cookieMap.containsKey(TOKEN)) {
|
||||
accessToken = cookieMap.get(TOKEN).getValue();
|
||||
}
|
||||
}
|
||||
|
||||
// 如果token参数不存在,返回错误信息
|
||||
if (StrUtil.isBlank(accessToken)) {
|
||||
sendErrorMsg(request, response);
|
||||
|
||||
Reference in new issue
Block a user