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 20a5687..e365db6 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 @@ -14,7 +14,6 @@ import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; import java.util.Optional; @@ -32,12 +31,11 @@ public class UserQueryController { public ResponseEntity check( @CookieValue(value = ConstantConfig.COOKIE_KEY, required = false) String cookieToken, @RequestHeader(value = "Authorization", required = false) String headerToken, - HttpServletRequest request + @RequestHeader(value = "X-Original-URI", required = false) String originalUri ) { String token = headerToken != null ? headerToken : cookieToken; - String requestUri = request.getRequestURI(); - LOGGER.info("[权限校验] token={}, uri={}", token, requestUri); + LOGGER.info("[权限校验] token={}, originalUri={}", headerToken != null ? headerToken : cookieToken, originalUri); if (token == null || token.isBlank()) { LOGGER.warn("[权限校验] 未提供token,拒绝访问"); @@ -89,24 +87,24 @@ public class UserQueryController { // 管理员全访问(pattern为/ 或 pattern为.* 都放行) if ("/".equals(pattern) || ".*".equals(pattern)) { - LOGGER.info("[权限校验] 用户[{}]的角色规则[{}]允许全路径访问: {}", userId, pattern, requestUri); + LOGGER.info("[权限校验] 用户[{}]的角色规则[{}]允许全路径访问: {}", userId, pattern, originalUri); hasPermission = true; break; } // 先前缀匹配,再正则匹配 - if (requestUri.startsWith(pattern) || requestUri.matches(pattern)) { - LOGGER.info("[权限校验] 用户[{}]的角色规则[{}]允许访问: {}", userId, pattern, requestUri); + if (originalUri.startsWith(pattern) || originalUri.matches(pattern)) { + LOGGER.info("[权限校验] 用户[{}]的角色规则[{}]允许访问: {}", userId, pattern, originalUri); hasPermission = true; break; } } if (hasPermission) { - LOGGER.info("[权限校验] 访问通过: userId={}, uri={}", userId, requestUri); + LOGGER.info("[权限校验] 访问通过: userId={}, uri={}", userId, originalUri); return ResponseEntity.ok(Map.of("code", 0, "msg", "权限校验通过")); } else { - LOGGER.warn("[权限校验] 拒绝访问: userId={}, uri={}, 无匹配规则", userId, requestUri); + LOGGER.warn("[权限校验] 拒绝访问: userId={}, uri={}, 无匹配规则", userId, originalUri); return ResponseEntity.status(403).body(Map.of("code", 403, "msg", "无访问权限")); } }