在SaTokenConfigure中设置
@Configuration
public class SaTokenConfigure {
// 注册 Sa-Token全局过滤器
@Bean
public SaReactorFilter getSaReactorFilter() {
return new SaReactorFilter()
// 拦截地址
.addInclude("/**")
// 开放地址
.addExclude("/favicon.ico")
// 鉴权方法:每次访问进入
.setAuth(obj -> {
// 登录校验 -- 拦截所有路由,并排除一下接口地址,以下地址都为http://localhost:端口/...省略地址
SaRouter.notMatch("/un/usersLogin/plateFormLogin")
.notMatch("/owu/officalLogin/officalUsersLogin")
.notMatch("/owu/officalUsers/judgeRelateInfo")
...........//可以无限多个写下去
.check(r -> StpUtil.checkLogin());//最后写验证
}) // 异常处理方法:每次setAuth函数出现异常时进入
.setError(e -> {
return SaResult.error(e.getMessage());
})
.setBeforeAuth(obj -> {
/*设置跨域响应头*/
SaHolder.getResponse()
/*允许指定域访问跨域资源*/
.setHeader("Access-Control-Allow-Origin", "*")
/*允许所有请求方式*/
.setHeader("Access-Control-Allow_Methods", "POST,GET,OPTIONS,DELETE")
/*有效时间*/
.setHeader("Access-Control-Max-Age", "3600")
/*允许的header参数*/
.setHeader("Access-Control-Allow-Headers", "*");
/*如果是预检请求,则立即返回前端*/
SaRouter.match(SaHttpMethod.OPTIONS)
.free(r -> System.out.println("不处理")).back();
})
;
}
}