From 9e1c97a6fbb4451f32a85ebbf00f6a64156fccc0 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 23 八月 2024 20:38:08 +0800
Subject: [PATCH] 修改获取token方法

---
 se-common/se-common-core/src/main/java/com/se/common/core/utils/StringUtils.java           |   18 +++++++++
 se-common/se-common-security/src/main/java/com/se/common/security/utils/SecurityUtils.java |   17 +++++++-
 se-auth/src/main/java/com/se/auth/controller/TokenController.java                          |   22 +++++++++--
 se-common/se-common-core/src/main/java/com/se/common/core/constant/TokenConstants.java     |   19 ++++++++-
 4 files changed, 67 insertions(+), 9 deletions(-)

diff --git a/se-auth/src/main/java/com/se/auth/controller/TokenController.java b/se-auth/src/main/java/com/se/auth/controller/TokenController.java
index 843cd7e..7cba290 100644
--- a/se-auth/src/main/java/com/se/auth/controller/TokenController.java
+++ b/se-auth/src/main/java/com/se/auth/controller/TokenController.java
@@ -6,10 +6,7 @@
 import com.se.auth.form.RegisterBody;
 import com.se.auth.service.SysLoginService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.se.common.core.domain.R;
 import com.se.common.core.utils.JwtUtils;
 import com.se.common.core.utils.StringUtils;
@@ -41,6 +38,23 @@
         return R.ok(tokenService.createToken(userInfo));
     }
 
+    @GetMapping("validate")
+    @PostMapping("validate")
+    public R<Object> validate(HttpServletRequest request) {
+        try {
+            boolean flag = false;
+            String token = SecurityUtils.getToken(request);
+            if (!StringUtils.isNotEmpty(token)) {
+                String userName = JwtUtils.getUserName(token);
+                flag = !StringUtils.isEmpty(userName);
+            }
+
+            return R.ok(flag);
+        } catch (Exception ex) {
+            return R.fail(ex.getMessage());
+        }
+    }
+
     @DeleteMapping("logout")
     public R<?> logout(HttpServletRequest request)
     {
diff --git a/se-common/se-common-core/src/main/java/com/se/common/core/constant/TokenConstants.java b/se-common/se-common-core/src/main/java/com/se/common/core/constant/TokenConstants.java
index 626e5a9..51fa6f1 100644
--- a/se-common/se-common-core/src/main/java/com/se/common/core/constant/TokenConstants.java
+++ b/se-common/se-common-core/src/main/java/com/se/common/core/constant/TokenConstants.java
@@ -5,8 +5,22 @@
  * 
  * @author admin
  */
-public class TokenConstants
-{
+public class TokenConstants {
+    /**
+     * 浠ょ墝鏍囪瘑-URL
+     */
+    public static final String TOKEN = "token";
+
+    /**
+     * 浠ょ墝鏍囪瘑-URL
+     */
+    public static final String ACCESS_TOKEN = "accessToken";
+
+    /**
+     * 浠ょ墝鏍囪瘑-Cookie
+     */
+    public static final String COOKIE_TOKEN = "Admin-Token";
+
     /**
      * 浠ょ墝鑷畾涔夋爣璇�
      */
@@ -21,5 +35,4 @@
      * 浠ょ墝绉橀挜
      */
     public final static String SECRET = "abcdefghijklmnopqrstuvwxyz";
-
 }
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 71c6dc1..50148dc 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
@@ -8,6 +8,9 @@
 import com.se.common.core.text.StrFormatter;
 import org.springframework.util.AntPathMatcher;
 
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 瀛楃涓插伐鍏风被
  * 
@@ -605,4 +608,19 @@
         }
         return sb.toString();
     }
+
+    public static String getValueFromCookie(HttpServletRequest request,String key) {
+        Cookie[] cookies = request.getCookies();
+        if (cookies == null || cookies.length == 0) {
+            return null;
+        }
+
+        for (Cookie cookie : cookies) {
+            if (cookie.getName().equals(key)){
+                return cookie.getValue();
+            }
+        }
+
+        return null;
+    }
 }
diff --git a/se-common/se-common-security/src/main/java/com/se/common/security/utils/SecurityUtils.java b/se-common/se-common-security/src/main/java/com/se/common/security/utils/SecurityUtils.java
index c5d1a12..dce85f3 100644
--- a/se-common/se-common-security/src/main/java/com/se/common/security/utils/SecurityUtils.java
+++ b/se-common/se-common-security/src/main/java/com/se/common/security/utils/SecurityUtils.java
@@ -59,10 +59,23 @@
     /**
      * 鏍规嵁request鑾峰彇璇锋眰token
      */
-    public static String getToken(HttpServletRequest request)
-    {
+    public static String getToken(HttpServletRequest request) {
         // 浠巋eader鑾峰彇token鏍囪瘑
         String token = request.getHeader(TokenConstants.AUTHENTICATION);
+
+        // 浠巙rl鑾峰彇token鏍囪瘑
+        if (StringUtils.isEmpty(token)) {
+            token = request.getParameter(TokenConstants.ACCESS_TOKEN);
+        }
+        if (StringUtils.isEmpty(token)) {
+            token = request.getParameter(TokenConstants.TOKEN);
+        }
+
+        // 浠巆ookie鑾峰彇token鏍囪瘑
+        if (StringUtils.isEmpty(token)) {
+            token = StringUtils.getValueFromCookie(request, TokenConstants.COOKIE_TOKEN);
+        }
+
         return replaceTokenPrefix(token);
     }
 

--
Gitblit v1.9.3