diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Anonymous.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Anonymous.java deleted file mode 100644 index 51eaf082d..000000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Anonymous.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ruoyi.common.annotation; - -import cn.dev33.satoken.annotation.SaIgnore; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * 匿名访问不鉴权注解 - * - * @author ruoyi - * @deprecated 将在后续版本使用Sa-Token注解 {@link SaIgnore} 代替 - */ -@Deprecated -@Target({ElementType.METHOD, ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface Anonymous { -} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java index a7c51fa69..291228667 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java @@ -5,8 +5,6 @@ import cn.dev33.satoken.jwt.StpLogicJwtForSimple; import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.stp.StpLogic; import cn.dev33.satoken.stp.StpUtil; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.framework.config.properties.ExcludeUrlProperties; import com.ruoyi.framework.config.properties.SecurityProperties; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -34,14 +32,10 @@ public class SaTokenConfig implements WebMvcConfigurer { public void addInterceptors(InterceptorRegistry registry) { // 注册路由拦截器,自定义验证规则 registry.addInterceptor(new SaInterceptor(handler -> { - // 自定义注解 @Anonymous 匿名访问配置,后续版本将删除 - ExcludeUrlProperties excludeUrlProperties = SpringUtils.getBean(ExcludeUrlProperties.class); // 登录验证 -- 排除多个路径 SaRouter // 获取所有的 .match("/**") - // 排除下不需要拦截的(每次匹配) - .notMatch(excludeUrlProperties.getExcludes()) // 对未排除的路径进行检查 .check(() -> { // 检查是否登录 是否有token diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java deleted file mode 100644 index 99d2eae81..000000000 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/ExcludeUrlProperties.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.ruoyi.framework.config.properties; - -import cn.dev33.satoken.annotation.SaIgnore; -import cn.dev33.satoken.interceptor.SaInterceptor; -import cn.hutool.core.util.ReUtil; -import com.ruoyi.common.annotation.Anonymous; -import com.ruoyi.common.utils.spring.SpringUtils; -import lombok.Getter; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.context.annotation.Lazy; -import org.springframework.core.annotation.AnnotationUtils; -import org.springframework.stereotype.Component; -import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.mvc.method.RequestMappingInfo; -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import org.springframework.web.util.pattern.PathPattern; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.*; -import java.util.regex.Pattern; - -/** - * 设置注解允许匿名访问的url - * - * @author Lion Li - * @deprecated 将在后续版本使用Sa-Token注解 {@link SaIgnore} 代替, - * 底层过滤方法详见 {@link SaInterceptor#preHandle(HttpServletRequest, HttpServletResponse, Object)} - */ -@Deprecated -@Lazy -@Component -public class ExcludeUrlProperties implements InitializingBean { - - private static final Pattern PATTERN = Pattern.compile("\\{(.*?)\\}"); - - @Getter - private final List excludes = new ArrayList<>(); - - @Override - public void afterPropertiesSet() { - String asterisk = "*"; - RequestMappingHandlerMapping mapping = SpringUtils.getBean("requestMappingHandlerMapping", RequestMappingHandlerMapping.class); - Map map = mapping.getHandlerMethods(); - - map.keySet().forEach(info -> { - HandlerMethod handlerMethod = map.get(info); - - // 获取方法上边的注解 替代path variable 为 * - Anonymous method = AnnotationUtils.findAnnotation(handlerMethod.getMethod(), Anonymous.class); - Optional.ofNullable(method).ifPresent(anonymous -> { - Set patterns = info.getPathPatternsCondition().getPatterns(); - patterns.forEach(url -> { - excludes.add(ReUtil.replaceAll(url.getPatternString(), PATTERN, asterisk)); - }); - }); - - // 获取类上边的注解, 替代path variable 为 * - Anonymous controller = AnnotationUtils.findAnnotation(handlerMethod.getBeanType(), Anonymous.class); - Optional.ofNullable(controller).ifPresent(anonymous -> { - Set patterns = info.getPathPatternsCondition().getPatterns(); - patterns.forEach(url -> { - excludes.add(ReUtil.replaceAll(url.getPatternString(), PATTERN, asterisk)); - }); - }); - }); - } - -}