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 */ // 开放地址 .addExclude("/order/**") .addExclude("/payment/**") // 鉴权方法:每次访问进入 .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")); // 更多匹配 ... */ }); } }