因为warehouse子项目的前端未开发,所以只能通过postman测试接口访问;
- package org.sharetek.common.security.config;
-
- import cn.dev33.satoken.SaManager;
- import cn.dev33.satoken.filter.SaServletFilter;
- import cn.dev33.satoken.interceptor.SaInterceptor;
- import cn.dev33.satoken.same.SaSameUtil;
- import cn.dev33.satoken.util.SaResult;
- import com.alibaba.csp.sentinel.adapter.spring.webmvc.SentinelWebInterceptor;
- import org.sharetek.common.core.constant.HttpStatus;
- import org.springframework.boot.autoconfigure.AutoConfiguration;
- import org.springframework.context.annotation.Bean;
- import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
- /**
- * 权限安全配置
- */
- @AutoConfiguration
- public class SecurityConfiguration implements WebMvcConfigurer {
-
- /**
- * 注册sa-token的拦截器
- */
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- // 注册路由拦截器,自定义验证规则
- registry.addInterceptor(new SaInterceptor()).addPathPatterns("/**");
- registry.addInterceptor(new SentinelWebInterceptor()).addPathPatterns("/**");
- }
-
- /**
- * 校验是否从网关转发 TODO 2024
- */
- @Bean
- public SaServletFilter getSaServletFilter() {
- return new SaServletFilter()
- .addInclude("/**")
- .addExclude("/actuator/**")
- .setAuth(obj -> {
- if (SaManager.getConfig().getCheckSameToken()) {
- SaSameUtil.checkCurrentRequestToken();
- }
- })
- .setError(e -> SaResult.error("认证失败,无法访问系统资源").setCode(HttpStatus.UNAUTHORIZED));
- }
-
- }
- <dependency>
- <groupId>com.alibaba.cspgroupId>
- <artifactId>sentinel-spring-webmvc-6x-adapterartifactId>
- dependency>
重启服务后,sentinel dashboard监控访问正常了.