From 4aac0058eaf157aa4704bcfc9863e498185a7514 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 11 Dec 2024 12:38:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=B1=BB=E5=8C=BF=E5=90=8D?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3=E8=AE=BF=E9=97=AE=E5=A4=B1=E6=95=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../properties/PermitAllUrlProperties.java | 90 +++++++++++-------- 1 file changed, 54 insertions(+), 36 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java index ec626f4e..6faaf213 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/PermitAllUrlProperties.java @@ -46,47 +46,65 @@ public class PermitAllUrlProperties implements InitializingBean, ApplicationCont { beanClass = bean.getClass(); } - RequestMapping base = beanClass.getAnnotation(RequestMapping.class); - String[] baseUrl = {}; - if (Objects.nonNull(base)) + // 处理类级别的匿名访问注解 + if (beanClass.isAnnotationPresent(Anonymous.class)) { - baseUrl = base.value(); - } - Method[] methods = beanClass.getDeclaredMethods(); - for (Method method : methods) - { - if (method.isAnnotationPresent(Anonymous.class) && method.isAnnotationPresent(RequestMapping.class)) + RequestMapping baseMapping = beanClass.getAnnotation(RequestMapping.class); + if (Objects.nonNull(baseMapping)) { - RequestMapping requestMapping = method.getAnnotation(RequestMapping.class); - String[] uri = requestMapping.value(); - urls.addAll(rebuildUrl(baseUrl, uri)); - } - else if (method.isAnnotationPresent(Anonymous.class) && method.isAnnotationPresent(GetMapping.class)) - { - GetMapping requestMapping = method.getAnnotation(GetMapping.class); - String[] uri = requestMapping.value(); - urls.addAll(rebuildUrl(baseUrl, uri)); - } - else if (method.isAnnotationPresent(Anonymous.class) && method.isAnnotationPresent(PostMapping.class)) - { - PostMapping requestMapping = method.getAnnotation(PostMapping.class); - String[] uri = requestMapping.value(); - urls.addAll(rebuildUrl(baseUrl, uri)); - } - else if (method.isAnnotationPresent(Anonymous.class) && method.isAnnotationPresent(PutMapping.class)) - { - PutMapping requestMapping = method.getAnnotation(PutMapping.class); - String[] uri = requestMapping.value(); - urls.addAll(rebuildUrl(baseUrl, uri)); - } - else if (method.isAnnotationPresent(Anonymous.class) && method.isAnnotationPresent(DeleteMapping.class)) - { - DeleteMapping requestMapping = method.getAnnotation(DeleteMapping.class); - String[] uri = requestMapping.value(); - urls.addAll(rebuildUrl(baseUrl, uri)); + String[] baseUrl = baseMapping.value(); + for (String url : baseUrl) + { + urls.add(prefix(url) + "/*"); + } + continue; } } + // 处理方法级别的匿名访问注解 + Method[] methods = beanClass.getDeclaredMethods(); + for (Method method : methods) + { + if (method.isAnnotationPresent(Anonymous.class)) + { + RequestMapping baseMapping = beanClass.getAnnotation(RequestMapping.class); + String[] baseUrl = {}; + if (Objects.nonNull(baseMapping)) + { + baseUrl = baseMapping.value(); + } + if (method.isAnnotationPresent(RequestMapping.class)) + { + RequestMapping requestMapping = method.getAnnotation(RequestMapping.class); + String[] uri = requestMapping.value(); + urls.addAll(rebuildUrl(baseUrl, uri)); + } + else if (method.isAnnotationPresent(GetMapping.class)) + { + GetMapping requestMapping = method.getAnnotation(GetMapping.class); + String[] uri = requestMapping.value(); + urls.addAll(rebuildUrl(baseUrl, uri)); + } + else if (method.isAnnotationPresent(PostMapping.class)) + { + PostMapping requestMapping = method.getAnnotation(PostMapping.class); + String[] uri = requestMapping.value(); + urls.addAll(rebuildUrl(baseUrl, uri)); + } + else if (method.isAnnotationPresent(PutMapping.class)) + { + PutMapping requestMapping = method.getAnnotation(PutMapping.class); + String[] uri = requestMapping.value(); + urls.addAll(rebuildUrl(baseUrl, uri)); + } + else if (method.isAnnotationPresent(DeleteMapping.class)) + { + DeleteMapping requestMapping = method.getAnnotation(DeleteMapping.class); + String[] uri = requestMapping.value(); + urls.addAll(rebuildUrl(baseUrl, uri)); + } + } + } } }