48 lines
1.7 KiB
Java
Raw Normal View History

package com.cdzy.gateway.config;
import cn.dev33.satoken.reactor.filter.SaReactorFilter;
import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author attiya
* @since 2025-03-18
*/
@Configuration
public class SaTokenConfigure {
@Value("${sa-token.is-check}")
private Boolean isCheck;
// 注册 Sa-Token全局过滤器
@Bean
public SaReactorFilter getSaReactorFilter() {
return new SaReactorFilter()
// 拦截地址
.addInclude("/**") /* 拦截全部path */
// 开放地址
2025-11-07 17:25:58 +08:00
.addExclude("/user/**")
.addExclude("/payment/**")
2025-11-07 17:25:58 +08:00
.addExclude("/**/api/**")
// 鉴权方法:每次访问进入
.setAuth(obj -> {
if (isCheck) {
// 登录校验 -- 拦截所有路由,并排除/user/doLogin 用于开放登录
SaRouter.match("/**", "/staff/ebikeOperatorStaff/login", r -> StpUtil.checkLogin());
}
// 权限认证 -- 不同模块, 校验不同权限
// SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
// SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
// SaRouter.match("/goods/**", r -> StpUtil.checkPermission("goods"));
// SaRouter.match("/orders/**", r -> StpUtil.checkPermission("orders"));
// 更多匹配 ... */
2025-09-10 17:31:51 +08:00
});
}
}