48 lines
1.7 KiB
Java
48 lines
1.7 KiB
Java
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("/user/**")
|
|
.addExclude("/payment/**")
|
|
.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"));
|
|
|
|
// 更多匹配 ... */
|
|
});
|
|
}
|
|
}
|
|
|