From 1fb74cc907e3a9adc55c822ecd534215d2193088 Mon Sep 17 00:00:00 2001
From: Hoshi <1196756653@qq.com>
Date: Thu, 21 Nov 2024 11:56:45 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0token=E6=A0=A1=E9=AA=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../sms/booter/controller/UserController.java | 25 +++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/UserController.java b/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/UserController.java
index 57c0df1..57fd255 100644
--- a/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/UserController.java
+++ b/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/UserController.java
@@ -8,23 +8,30 @@ import com.bocloud.sms.interfaces.UserService;
 import com.bocloud.sms.model.*;
 import com.megatron.common.model.*;
 import com.megatron.common.utils.Common;
+import io.netty.handler.codec.base64.Base64Decoder;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Base64;
 import java.util.List;
 import java.util.Map;
 
 /**
  * @author tyl
  */
+@Slf4j
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/v1/users")
@@ -58,8 +65,22 @@ public class UserController {
      */
     @Operation(summary = "查询用户列表")
     @GetMapping("/manager/external")
-    public GeneralResult<GridBean<User>> managerExternalList(Pager pager, @Value(Common.REQ_CONTEXT) RequestContext requestContext) {
-        return userService.managerExternalList(pager, requestContext);
+    public GeneralResult<GridBean<User>> managerExternalList(Pager pager, HttpServletRequest request) {
+        String token = request.getHeader("Token");
+        String oriString = new String(Base64.getDecoder().decode(token));
+        String[] split = oriString.split(":");
+        Assert.isTrue(split.length == 2, "token验证失败");
+        Assert.isTrue("cmp@v587".equals(split[0]), "token验证失败");
+        long timestamp = Long.parseLong(split[1]);
+        LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault());
+        log.info("token解析时间:{}", dateTime);
+        return userService.managerExternalList(pager, new RequestContext(RequestContext.Catalog.Manager, 1L, 1L, 1L, null));
+    }
+
+    public static void main(String[] args) {
+        String password = "cmp@v587";
+        String token = Base64.getEncoder().encodeToString(String.format("%s:%d",password, System.currentTimeMillis()).getBytes());
+        System.out.println(token);
     }