From 62ed225d2bb1bba7d78954f2a602f74652d30800 Mon Sep 17 00:00:00 2001 From: NiuZiYuan Date: Fri, 25 Apr 2025 15:00:45 +0800 Subject: [PATCH] dev --- .../common/annotations/NoAuthCheck.java | 11 +++++++ .../common/inteceptor/MvcInterceptor.java | 14 ++++++--- .../controller/common/AuthController.java | 31 ++++++++++--------- .../common/ManagerUserController.java | 2 ++ 4 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/syjiaer/clinic/server/common/annotations/NoAuthCheck.java diff --git a/src/main/java/com/syjiaer/clinic/server/common/annotations/NoAuthCheck.java b/src/main/java/com/syjiaer/clinic/server/common/annotations/NoAuthCheck.java new file mode 100644 index 0000000..24ebd06 --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/common/annotations/NoAuthCheck.java @@ -0,0 +1,11 @@ +package com.syjiaer.clinic.server.common.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface NoAuthCheck { +} diff --git a/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java b/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java index aacc79b..c245de4 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java +++ b/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java @@ -2,6 +2,7 @@ package com.syjiaer.clinic.server.common.inteceptor; import com.alibaba.fastjson2.JSON; import com.fasterxml.jackson.databind.ObjectMapper; +import com.syjiaer.clinic.server.common.annotations.NoAuthCheck; import com.syjiaer.clinic.server.common.util.HeadersUtil; import com.syjiaer.clinic.server.common.util.InfoUtil; import com.syjiaer.clinic.server.common.util.ParmsUtil; @@ -16,6 +17,7 @@ import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; import java.io.BufferedReader; @@ -41,11 +43,15 @@ public class MvcInterceptor implements HandlerInterceptor { setParms(request); setHeaders(request); - if (!request.getRequestURI().endsWith("/manager/user/login")) { - return checkManage(response); + // 检查是否是需要跳过权限检查的请求 + if (handler instanceof HandlerMethod) { + HandlerMethod handlerMethod = (HandlerMethod) handler; + NoAuthCheck noAuthCheck = handlerMethod.getMethodAnnotation(NoAuthCheck.class); + if (noAuthCheck != null) { + return true; // 如果方法上有 @NoAuthCheck 注解,则跳过检查 + } } - - return true; + return checkManage(response); } private Boolean checkManage(HttpServletResponse response) throws IOException { Map headers =headersUtil.getMap(); diff --git a/src/main/java/com/syjiaer/clinic/server/controller/common/AuthController.java b/src/main/java/com/syjiaer/clinic/server/controller/common/AuthController.java index 1d4523d..de9289d 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/common/AuthController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/common/AuthController.java @@ -1,6 +1,7 @@ package com.syjiaer.clinic.server.controller.common; import com.alibaba.fastjson.JSONObject; +import com.syjiaer.clinic.server.common.annotations.NoAuthCheck; import com.syjiaer.clinic.server.common.config.Config; import com.syjiaer.clinic.server.common.util.RsaUtil; import com.syjiaer.clinic.server.common.vo.Result; @@ -12,18 +13,20 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/auth") public class AuthController extends BaseController { -// @Autowired -// private Config config; -// @RequestMapping("set") -// public Result set() { -// String ciphertext = parmsUtil.getString("ciphertext", "请输入密文"); -// String data= RsaUtil.decryp(ciphertext); -// config.set("common","cert",ciphertext); -// return success(); -// } -// @RequestMapping("set") -// public Result get() { -// String cert=config.get("common","cert"); -// return success(JSONObject.parseObject(cert)); -// } + @Autowired + private Config config; + @RequestMapping("set") + @NoAuthCheck + public Result set() { + String ciphertext = parmsUtil.getString("ciphertext", "请输入密文"); + String data= RsaUtil.decryp(ciphertext); + config.set("common","cert",ciphertext); + return success(); + } + @RequestMapping("get") + @NoAuthCheck + public Result get() { + String cert=config.get("common","cert"); + return success(JSONObject.parseObject(cert)); + } } diff --git a/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java b/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java index 12752ad..aa56227 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java @@ -1,6 +1,7 @@ package com.syjiaer.clinic.server.controller.common; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.syjiaer.clinic.server.common.annotations.NoAuthCheck; import com.syjiaer.clinic.server.common.vo.Result; import com.syjiaer.clinic.server.controller.BaseController; import com.syjiaer.clinic.server.entity.manager.ManagerUser; @@ -33,6 +34,7 @@ public class ManagerUserController extends BaseController { @PostMapping("login") + @NoAuthCheck public Result login() { Map parms = getParms(); String username = (String) parms.get("username");