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)); + } + } + } } }