57 lines
1.7 KiB
Java
57 lines
1.7 KiB
Java
package com.pj.satoken;
|
|
|
|
import cn.dev33.satoken.filter.SaServletFilter;
|
|
import cn.dev33.satoken.interceptor.SaInterceptor;
|
|
import cn.dev33.satoken.util.SaResult;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
|
|
|
|
/**
|
|
* [Sa-Token 权限认证] 配置类
|
|
* @author click33
|
|
*
|
|
*/
|
|
@Configuration
|
|
public class SaTokenConfigure implements WebMvcConfigurer {
|
|
|
|
/**
|
|
* 注册 Sa-Token 拦截器打开注解鉴权功能
|
|
*/
|
|
@Override
|
|
public void addInterceptors(InterceptorRegistry registry) {
|
|
// 注册 Sa-Token 拦截器打开注解鉴权功能
|
|
registry.addInterceptor(new SaInterceptor()).addPathPatterns("/**");
|
|
}
|
|
|
|
/**
|
|
* 注册 [Sa-Token 全局过滤器]
|
|
*/
|
|
@Bean
|
|
public SaServletFilter getSaServletFilter() {
|
|
return new SaServletFilter()
|
|
|
|
// 指定 [拦截路由] 与 [放行路由]
|
|
.addInclude("/**")// .addExclude("/favicon.ico")
|
|
|
|
// 认证函数: 每次请求执行
|
|
.setAuth(obj -> {
|
|
// 输出 API 请求日志,方便调试代码
|
|
// SaManager.getLog().debug("----- 请求path={} 提交token={}", SaHolder.getRequest().getRequestPath(), StpUtil.getTokenValue());
|
|
|
|
})
|
|
|
|
// 异常处理函数:每次认证函数发生异常时执行此函数
|
|
.setError(e -> {
|
|
System.out.println("---------- sa全局异常 ");
|
|
e.printStackTrace();
|
|
return SaResult.error(e.getMessage());
|
|
})
|
|
|
|
;
|
|
}
|
|
|
|
}
|