From 5dce53514609405ad28bad0625c25ad7f2f25cd8 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 29 八月 2024 16:56:43 +0800
Subject: [PATCH] 11

---
 se-common/se-common-core/src/main/java/com/se/common/core/utils/StringUtils.java |   21 +++++++++++++++++++++
 se-gateway/src/main/java/com/se/gateway/filter/AuthFilter.java                   |   17 ++++++++++-------
 2 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/se-common/se-common-core/src/main/java/com/se/common/core/utils/StringUtils.java b/se-common/se-common-core/src/main/java/com/se/common/core/utils/StringUtils.java
index 50148dc..3750592 100644
--- a/se-common/se-common-core/src/main/java/com/se/common/core/utils/StringUtils.java
+++ b/se-common/se-common-core/src/main/java/com/se/common/core/utils/StringUtils.java
@@ -6,7 +6,11 @@
 
 import com.se.common.core.constant.Constants;
 import com.se.common.core.text.StrFormatter;
+import org.springframework.http.HttpCookie;
+import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.util.AntPathMatcher;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.MultiValueMap;
 
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
@@ -609,6 +613,23 @@
         return sb.toString();
     }
 
+    public static String getValueFromCookie(ServerHttpRequest request, String key) {
+        MultiValueMap<String, HttpCookie> cookies = request.getCookies();
+        if (CollectionUtils.isEmpty(cookies)) {
+            return null;
+        }
+
+        for (Map.Entry<String, List<HttpCookie>> itemList  : cookies.entrySet()) {
+            for (HttpCookie cookie :itemList.getValue()) {
+                if (cookie.getName().equals(key)){
+                    return cookie.getValue();
+                }
+            }
+        }
+
+        return null;
+    }
+
     public static String getValueFromCookie(HttpServletRequest request,String key) {
         Cookie[] cookies = request.getCookies();
         if (cookies == null || cookies.length == 0) {
diff --git a/se-gateway/src/main/java/com/se/gateway/filter/AuthFilter.java b/se-gateway/src/main/java/com/se/gateway/filter/AuthFilter.java
index e147b1d..ca521c2 100644
--- a/se-gateway/src/main/java/com/se/gateway/filter/AuthFilter.java
+++ b/se-gateway/src/main/java/com/se/gateway/filter/AuthFilter.java
@@ -21,8 +21,6 @@
 import io.jsonwebtoken.Claims;
 import reactor.core.publisher.Mono;
 
-import javax.servlet.http.HttpServletRequest;
-
 /**
  * 缃戝叧閴存潈
  * 
@@ -106,19 +104,24 @@
     /**
      * 鑾峰彇璇锋眰token
      */
-    private String getToken(ServerHttpRequest req) {
-        HttpServletRequest request = (HttpServletRequest) req;
+    private String getToken(ServerHttpRequest request) {
         // 浠巋eader鑾峰彇token鏍囪瘑
-        String token = request.getHeader(TokenConstants.AUTHENTICATION);
+        String token = request.getHeaders().getFirst(TokenConstants.AUTHENTICATION);
 
         // 浠巙rl鑾峰彇token鏍囪瘑
         if (StringUtils.isEmpty(token)) {
-            token = request.getParameter(TokenConstants.ACCESS_TOKEN);
+            token = request.getQueryParams().getFirst(TokenConstants.ACCESS_TOKEN);
         }
         if (StringUtils.isEmpty(token)) {
-            token = request.getParameter(TokenConstants.TOKEN);
+            token = request.getQueryParams().getFirst(TokenConstants.TOKEN);
         }
 
+        // 浠巆ookie鑾峰彇token鏍囪瘑
+        if (StringUtils.isEmpty(token)) {
+            token = StringUtils.getValueFromCookie(request, TokenConstants.COOKIE_TOKEN);
+        }
+
+        //String token = request.getHeaders().getFirst(TokenConstants.AUTHENTICATION);
         // 濡傛灉鍓嶇璁剧疆浜嗕护鐗屽墠缂�锛屽垯瑁佸壀鎺夊墠缂�
         if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
             token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);

--
Gitblit v1.9.3