You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.7 KiB
46 lines
1.7 KiB
package {{ package.Common }}.config;
|
|
|
|
import cn.dev33.satoken.interceptor.SaInterceptor;
|
|
import cn.dev33.satoken.router.SaRouter;
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* SaToken配置
|
|
* @Author: {{author}}
|
|
* @Date: {{date}}
|
|
* @Wechat: {{ wechat }}
|
|
* 解决@RequestAttribute、@RequestParam和@RequestBody三种类型的时间类型参数接收与转换问题
|
|
*/
|
|
@Configuration
|
|
public class SaTokenConfig implements WebMvcConfigurer {
|
|
|
|
@Override
|
|
public void addInterceptors(InterceptorRegistry registry) {
|
|
|
|
// 注册 Sa-Token 拦截器,定义详细认证规则
|
|
registry.addInterceptor(new SaInterceptor(handler -> {
|
|
// 指定一条 match 规则
|
|
SaRouter
|
|
.match("/models/**") // 拦截的 path 列表,可以写多个 */
|
|
// .notMatch("/models/health-user/login") // 排除掉的 path 列表,可以写多个
|
|
.check(r -> StpUtil.checkLogin()); // 要执行的校验动作,可以写完整的 lambda 表达式
|
|
|
|
//拦截并写操作日志
|
|
// SaRouter.match(r).check(t->{
|
|
// SaLog.info("操作日志:{}", SaLog.getParamJson());
|
|
// SaLog.info("操作日志:{}", SaLog.getRequestBody());
|
|
// );
|
|
|
|
})).addPathPatterns("/**");
|
|
}
|
|
|
|
|
|
}
|
|
|