From 3cf63bb70c3d95084dd1e17e2d058c0ca044a284 Mon Sep 17 00:00:00 2001 From: "Luke.Ye" Date: Thu, 10 Jul 2025 14:45:52 +0800 Subject: [PATCH] add os uri auth check --- .../infrastructure/config/ConstantConfig.java | 3 +++ .../north/controller/UserQueryController.java | 19 ++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java b/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java index 7910617..94fa131 100644 --- a/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java +++ b/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java @@ -36,4 +36,7 @@ public class ConstantConfig { public static final String DEFAULT_SLUG_ID = "87e14982-a821-48d8-9c6b-3557d0bb2f96"; public static final String KEYWORD_PATTERN_LEFT = "#"; public static final String KEYWORD_PATTERN_RIGHT = "#"; + + + public static final String OS_HOST = "s3.wisdompulse.cn"; } diff --git a/src/main/java/com/knowledge/base/infrastructure/north/controller/UserQueryController.java b/src/main/java/com/knowledge/base/infrastructure/north/controller/UserQueryController.java index bd4a966..97aa92c 100644 --- a/src/main/java/com/knowledge/base/infrastructure/north/controller/UserQueryController.java +++ b/src/main/java/com/knowledge/base/infrastructure/north/controller/UserQueryController.java @@ -5,6 +5,7 @@ import com.google.common.collect.Lists; import com.knowledge.base.application.service.UserAppService; import com.knowledge.base.infrastructure.cache.iface.FileCacheService; import com.knowledge.base.infrastructure.config.ConstantConfig; +import com.knowledge.base.infrastructure.config.DynamicConfig; import com.knowledge.base.infrastructure.north.dto.role.RoleFileRuleDTO; import com.knowledge.base.infrastructure.north.dto.role.UserRoleDTO; import com.knowledge.base.infrastructure.north.dto.user.UserDTO; @@ -17,9 +18,8 @@ import org.springframework.web.bind.annotation.*; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; +import java.util.stream.Collectors; @RestController @RequestMapping("/api/v1/user") @@ -32,16 +32,19 @@ public class UserQueryController { private final FileCacheService fileCacheService; + private final DynamicConfig dynamicConfig; + @GetMapping("/check") public ResponseEntity check( @CookieValue(value = ConstantConfig.COOKIE_KEY, required = false) String cookieToken, @RequestHeader(value = "Authorization", required = false) String headerToken, - @RequestHeader(value = "X-Original-URI", required = false) String originalUri + @RequestHeader(value = "X-Original-URI", required = false) String originalUri, + @RequestHeader(value = "X-Original-HOST", required = false, defaultValue = StrUtil.EMPTY) String host ) { String token = headerToken != null ? headerToken : cookieToken; originalUri = URLDecoder.decode(originalUri, StandardCharsets.UTF_8); - LOGGER.info("[权限校验] token={}, originalUri={}", headerToken != null ? headerToken : cookieToken, originalUri); + LOGGER.info("[权限校验] token={}, host={}, originalUri={}", headerToken != null ? headerToken : cookieToken, host, originalUri); if (token == null || token.isBlank()) { LOGGER.warn("[权限校验] 未提供token,拒绝访问"); @@ -57,6 +60,12 @@ public class UserQueryController { Long userId = userTokenOpt.get().getUserId(); LOGGER.info("[权限校验] 解析到userId={}", userId); + // os的权限校验很简单,token有效即可 + if(ConstantConfig.OS_HOST.equals(host)) { + LOGGER.info("[权限校验] 访问通过: userId={}, host={}, uri={}", userId, host, originalUri); + return ResponseEntity.ok(Map.of("code", 0, "msg", "权限校验通过")); + } + // 查询用户角色 List userRoles = userAppService.listUserRoles(userId); if (userRoles == null || userRoles.isEmpty()) {