update 方法以及类注解 @Anonymous 替换为 @SaIgnore ;

update 注解 Anonymous 标记为 @Deprecated, 使用 SaIgnore 替换 ;
update 配置 ExcludeUrlProperties 标记为 @Deprecated, 由 Sa-Token 底层根据注解 @SaIgnore 进行过滤 ;
delete Sa-Token 拦截器配置 SaTokenConfig#addInterceptors 删除过时用法 ;
This commit is contained in:
zlyx 2022-09-19 18:48:34 +08:00
parent cf7df6a14c
commit 8635da0074
7 changed files with 22 additions and 13 deletions

View File

@ -1,11 +1,11 @@
package com.ruoyi.web.controller.common; package com.ruoyi.web.controller.common;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.captcha.AbstractCaptcha; import cn.hutool.captcha.AbstractCaptcha;
import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
@ -35,7 +35,7 @@ import java.util.Map;
* *
* @author Lion Li * @author Lion Li
*/ */
@Anonymous @SaIgnore
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -1,6 +1,6 @@
package com.ruoyi.web.controller.system; package com.ruoyi.web.controller.system;
import com.ruoyi.common.annotation.Anonymous; import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -24,7 +24,7 @@ public class SysIndexController {
/** /**
* 访问首页提示语 * 访问首页提示语
*/ */
@Anonymous @SaIgnore
@GetMapping("/") @GetMapping("/")
public String index() { public String index() {
return StringUtils.format("欢迎使用{}后台管理框架当前版本v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); return StringUtils.format("欢迎使用{}后台管理框架当前版本v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());

View File

@ -1,6 +1,6 @@
package com.ruoyi.web.controller.system; package com.ruoyi.web.controller.system;
import com.ruoyi.common.annotation.Anonymous; import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysMenu;
@ -47,7 +47,7 @@ public class SysLoginController {
* @param loginBody 登录信息 * @param loginBody 登录信息
* @return 结果 * @return 结果
*/ */
@Anonymous @SaIgnore
@PostMapping("/login") @PostMapping("/login")
public R<Map<String, Object>> login(@Validated @RequestBody LoginBody loginBody) { public R<Map<String, Object>> login(@Validated @RequestBody LoginBody loginBody) {
Map<String, Object> ajax = new HashMap<>(); Map<String, Object> ajax = new HashMap<>();
@ -64,7 +64,7 @@ public class SysLoginController {
* @param smsLoginBody 登录信息 * @param smsLoginBody 登录信息
* @return 结果 * @return 结果
*/ */
@Anonymous @SaIgnore
@PostMapping("/smsLogin") @PostMapping("/smsLogin")
public R<Map<String, Object>> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) { public R<Map<String, Object>> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) {
Map<String, Object> ajax = new HashMap<>(); Map<String, Object> ajax = new HashMap<>();
@ -80,7 +80,7 @@ public class SysLoginController {
* @param xcxCode 小程序code * @param xcxCode 小程序code
* @return 结果 * @return 结果
*/ */
@Anonymous @SaIgnore
@PostMapping("/xcxLogin") @PostMapping("/xcxLogin")
public R<Map<String, Object>> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) { public R<Map<String, Object>> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) {
Map<String, Object> ajax = new HashMap<>(); Map<String, Object> ajax = new HashMap<>();
@ -93,7 +93,7 @@ public class SysLoginController {
/** /**
* 退出登录 * 退出登录
*/ */
@Anonymous @SaIgnore
@PostMapping("/logout") @PostMapping("/logout")
public R<Void> logout() { public R<Void> logout() {
loginService.logout(); loginService.logout();

View File

@ -1,6 +1,6 @@
package com.ruoyi.web.controller.system; package com.ruoyi.web.controller.system;
import com.ruoyi.common.annotation.Anonymous; import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.common.core.domain.model.RegisterBody;
@ -28,7 +28,7 @@ public class SysRegisterController extends BaseController {
/** /**
* 用户注册 * 用户注册
*/ */
@Anonymous @SaIgnore
@PostMapping("/register") @PostMapping("/register")
public R<Void> register(@Validated @RequestBody RegisterBody user) { public R<Void> register(@Validated @RequestBody RegisterBody user) {
if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) {

View File

@ -1,5 +1,7 @@
package com.ruoyi.common.annotation; package com.ruoyi.common.annotation;
import cn.dev33.satoken.annotation.SaIgnore;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@ -10,7 +12,9 @@ import java.lang.annotation.Target;
* 匿名访问不鉴权注解 * 匿名访问不鉴权注解
* *
* @author ruoyi * @author ruoyi
* @deprecated 将在后续版本使用Sa-Token注解 {@link SaIgnore} 代替
*/ */
@Deprecated
@Target({ElementType.METHOD, ElementType.TYPE}) @Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented

View File

@ -34,14 +34,12 @@ public class SaTokenConfig implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
// 注册路由拦截器自定义验证规则 // 注册路由拦截器自定义验证规则
registry.addInterceptor(new SaInterceptor(handler -> { registry.addInterceptor(new SaInterceptor(handler -> {
ExcludeUrlProperties excludeUrlProperties = SpringUtils.getBean(ExcludeUrlProperties.class);
// 登录验证 -- 排除多个路径 // 登录验证 -- 排除多个路径
SaRouter SaRouter
// 获取所有的 // 获取所有的
.match("/**") .match("/**")
// 排除下不需要拦截的 // 排除下不需要拦截的
.notMatch(securityProperties.getExcludes()) .notMatch(securityProperties.getExcludes())
.notMatch(excludeUrlProperties.getExcludes())
// 对未排除的路径进行检查 // 对未排除的路径进行检查
.check(() -> { .check(() -> {
// 检查是否登录 是否有token // 检查是否登录 是否有token

View File

@ -1,5 +1,7 @@
package com.ruoyi.framework.config.properties; 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 cn.hutool.core.util.ReUtil;
import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
@ -13,6 +15,8 @@ import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import org.springframework.web.util.pattern.PathPattern; import org.springframework.web.util.pattern.PathPattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -20,7 +24,10 @@ import java.util.regex.Pattern;
* 设置注解允许匿名访问的url * 设置注解允许匿名访问的url
* *
* @author Lion Li * @author Lion Li
* @deprecated 将在后续版本使用Sa-Token注解 {@link SaIgnore} 代替
* 底层过滤方法详见 {@link SaInterceptor#preHandle(HttpServletRequest, HttpServletResponse, Object)}
*/ */
@Deprecated
@Lazy @Lazy
@Component @Component
public class ExcludeUrlProperties implements InitializingBean { public class ExcludeUrlProperties implements InitializingBean {