diff --git a/sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java b/sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java
index 6889533f..cad6876e 100644
--- a/sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java
+++ b/sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java
@@ -21,7 +21,17 @@ public class SaTokenConfigure implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册注解拦截器
- registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**");
+ registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**").excludePathPatterns("");
}
+// /**
+// * 注册 [sa-token全局过滤器]
+// */
+// @Bean
+// public SaServletFilter getSaReactorFilter() {
+// return new SaServletFilter()
+// .addInclude("/**")
+// .addExclude("/favicon.ico");
+// }
+
}
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java b/sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java
index b54ab49a..eb2cbdf8 100644
--- a/sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java
+++ b/sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java
@@ -24,7 +24,9 @@ public class SaTokenConfigure {
*/
@Bean
public SaReactorFilter getSaReactorFilter() {
- return new SaReactorFilter();
+ return new SaReactorFilter()
+ .addInclude("/**")
+ .addExclude("/favicon.ico");
}
/**
diff --git a/sa-token-doc/doc/use/global-filter.md b/sa-token-doc/doc/use/global-filter.md
index 394de832..c8271d35 100644
--- a/sa-token-doc/doc/use/global-filter.md
+++ b/sa-token-doc/doc/use/global-filter.md
@@ -33,7 +33,9 @@ public class SaTokenConfigure {
*/
@Bean
public SaServletFilter getSaReactorFilter() {
- return new SaServletFilter();
+ return new SaServletFilter()
+ .addInclude("/**")
+ .addExclude("/favicon.ico");
}
/**
@@ -93,7 +95,9 @@ public class SaTokenConfigure {
*/
@Bean
public SaReactorFilter getSaReactorFilter() {
- return new SaReactorFilter();
+ return new SaReactorFilter()
+ .addInclude("/**")
+ .addExclude("/favicon.ico");
}
// 其它代码 ...
diff --git a/sa-token-doc/index.css b/sa-token-doc/index.css
index 1f39424f..d9fa38fa 100644
--- a/sa-token-doc/index.css
+++ b/sa-token-doc/index.css
@@ -29,12 +29,12 @@ body{font-size: 16px; color: #34495E; font-family: "Source Sans Pro","Helvetica
.main-box{display: flex; align-items: center; text-align: center; }
.fenge{min-height: 90px;}
.content-box{color: #000; flex: 1;}
-.content-box h1{font-size: 90px; font-weight: 400; position: relative; margin-top: 40px; /* margin-top: 15vh; */}
+.content-box h1{font-size: 100px; font-weight: 400; position: relative; margin-top: 40px; /* margin-top: 15vh; */}
.content-box h1 small{font-size: 18px; position: absolute; bottom: 10px; margin-left: 5px; font-weight: 100;}
-.title-logo{width: 221px; cursor: pointer; transition: all 0.2s;}
-.title-logo:hover{transform: scale(1.2, 1.2);}
+/* .title-logo{width: 221px; cursor: pointer; transition: all 0.2s;}
+.title-logo:hover{transform: scale(1.2, 1.2);} */
-.sub-title{font-size: 24px; font-weight: 400; margin-top: 30px; margin-bottom: 25px; color: #6a8bad; color: #444;}
+.sub-title{font-size: 26px; font-weight: 400; margin-top: 30px; margin-bottom: 25px; color: #6a8bad; color: #444;}
.content-box p{line-height: 30px; padding: 0px 1em;}
.main-box{animation: changes 60s 0.2s linear infinite normal; background-attachment: ;} /* normal | alternate */
@@ -44,12 +44,12 @@ body{font-size: 16px; color: #34495E; font-family: "Source Sans Pro","Helvetica
}
/* 几个按钮 */
-.btn-box{margin-top: 50px; margin-bottom: 28px;}
+.btn-box{margin-top: 50px; margin-bottom: 40px;}
.btn-box a{border: 1px #42B983 solid; border-radius: 2em; box-sizing: border-box; color: #3eaf7c; display: inline-block;transition: all 0.1s;}
-.btn-box a{font-size: 14px; background-color: rgba(0,255,0,0.03); letter-spacing: 1px; margin: 0 0.5em; padding: 0.8em 1.5em; margin-bottom: 14px; text-decoration: none; }
+.btn-box a{font-size: 14px; background-color: rgba(0,255,0,0.04); letter-spacing: 1px; padding: 1em 2em; margin: 0 0.5em; margin-bottom: 14px; text-decoration: none; }
/* 最后一个加深底色 */
.btn-box a:last-child {color: #fff; background-color: #42B983; border: 1px green solid;}
-.btn-box a:hover{/* transform: scale(1.05, 1.05); */padding: 0.8em 1.7em;margin: 0 0.3em;}
+.btn-box a:hover{/* transform: scale(1.05, 1.05); */padding: 1em 2.3em; margin: 0 0.2em;}
/* 按钮发光动画 */
.btn-box a:last-child{animation: bganimation 3s infinite;}
@@ -59,7 +59,7 @@ body{font-size: 16px; color: #34495E; font-family: "Source Sans Pro","Helvetica
100%{box-shadow: 0 0 20px #FFF;}
}
/* 微信二维码 */
-.wx-qr-box{margin-top: 40px; margin-bottom: 20px;}
+.wx-qr-box{margin-top: 50px; margin-bottom: 20px;}
.wx-qr{width: 150px;}
.wx-qr-box p{margin-top: 10px; color: #666;}
.wx-qr,.dro-qr{cursor: pointer;}
diff --git a/sa-token-doc/index.html b/sa-token-doc/index.html
index 9fa22331..ef8b6802 100644
--- a/sa-token-doc/index.html
+++ b/sa-token-doc/index.html
@@ -66,7 +66,7 @@

-
(扫码添加微信,备注: sa-token,邀您加入技术群聊)
+
(扫码加入微信交流群,请备注: sa)
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java b/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java
index 8e5eae3e..17adc3c8 100644
--- a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java
+++ b/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java
@@ -1,5 +1,9 @@
package cn.dev33.satoken.reactor.filter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import org.springframework.core.annotation.Order;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
@@ -8,6 +12,7 @@ import org.springframework.web.server.WebFilterChain;
import cn.dev33.satoken.SaTokenManager;
import cn.dev33.satoken.reactor.context.SaReactorHolder;
import cn.dev33.satoken.reactor.context.SaReactorSyncHolder;
+import cn.dev33.satoken.router.SaRouterUtil;
import cn.dev33.satoken.util.SaTokenConsts;
import reactor.core.publisher.Mono;
@@ -19,6 +24,77 @@ import reactor.core.publisher.Mono;
@Order(SaTokenConsts.ASSEMBLY_ORDER)
public class SaReactorFilter implements WebFilter {
+ // ------------------------ 设置此过滤器 拦截 & 放行 的路由
+
+ /**
+ * 拦截路由
+ */
+ private List includeList = new ArrayList<>();
+
+ /**
+ * 放行路由
+ */
+ private List excludeList = new ArrayList<>();
+
+ /**
+ * 添加 [拦截路由]
+ * @param paths 路由
+ * @return 对象自身
+ */
+ public SaReactorFilter addInclude(String... paths) {
+ includeList.addAll(Arrays.asList(paths));
+ return this;
+ }
+
+ /**
+ * 添加 [放行路由]
+ * @param paths 路由
+ * @return 对象自身
+ */
+ public SaReactorFilter addExclude(String... paths) {
+ excludeList.addAll(Arrays.asList(paths));
+ return this;
+ }
+
+ /**
+ * 写入 [拦截路由] 集合
+ * @param pathList 路由集合
+ * @return 对象自身
+ */
+ public SaReactorFilter setIncludeList(List pathList) {
+ includeList = pathList;
+ return this;
+ }
+
+ /**
+ * 写入 [放行路由] 集合
+ * @param pathList 路由集合
+ * @return 对象自身
+ */
+ public SaReactorFilter setExcludeList(List pathList) {
+ excludeList = pathList;
+ return this;
+ }
+
+ /**
+ * 获取 [拦截路由] 集合
+ * @return see note
+ */
+ public List getIncludeList() {
+ return includeList;
+ }
+
+ /**
+ * 获取 [放行路由] 集合
+ * @return see note
+ */
+ public List getExcludeList() {
+ return excludeList;
+ }
+
+
+ // ------------------------ filter
+
@Override
public Mono filter(ServerWebExchange exchange, WebFilterChain chain) {
// ---------- 全局认证处理
@@ -27,7 +103,7 @@ public class SaReactorFilter implements WebFilter {
SaReactorSyncHolder.setContent(exchange);
// 执行全局过滤器
- SaTokenManager.getSaFilterStrategy().run(null);
+ SaRouterUtil.match(includeList, excludeList, () -> SaTokenManager.getSaFilterStrategy().run(null));
} catch (Throwable e) {
// 1. 获取异常处理策略结果
@@ -61,5 +137,4 @@ public class SaReactorFilter implements WebFilter {
});
}
-
}
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java b/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java
index 579bdcd0..1743088f 100644
--- a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java
+++ b/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java
@@ -1,6 +1,9 @@
package cn.dev33.satoken.filter;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
@@ -12,6 +15,7 @@ import javax.servlet.ServletResponse;
import org.springframework.core.annotation.Order;
import cn.dev33.satoken.SaTokenManager;
+import cn.dev33.satoken.router.SaRouterUtil;
import cn.dev33.satoken.util.SaTokenConsts;
/**
@@ -22,13 +26,84 @@ import cn.dev33.satoken.util.SaTokenConsts;
@Order(SaTokenConsts.ASSEMBLY_ORDER)
public class SaServletFilter implements Filter {
+ // ------------------------ 设置此过滤器 拦截 & 放行 的路由
+
+ /**
+ * 拦截路由
+ */
+ private List includeList = new ArrayList<>();
+
+ /**
+ * 放行路由
+ */
+ private List excludeList = new ArrayList<>();
+
+ /**
+ * 添加 [拦截路由]
+ * @param paths 路由
+ * @return 对象自身
+ */
+ public SaServletFilter addInclude(String... paths) {
+ includeList.addAll(Arrays.asList(paths));
+ return this;
+ }
+
+ /**
+ * 添加 [放行路由]
+ * @param paths 路由
+ * @return 对象自身
+ */
+ public SaServletFilter addExclude(String... paths) {
+ excludeList.addAll(Arrays.asList(paths));
+ return this;
+ }
+
+ /**
+ * 写入 [拦截路由] 集合
+ * @param pathList 路由集合
+ * @return 对象自身
+ */
+ public SaServletFilter setIncludeList(List pathList) {
+ includeList = pathList;
+ return this;
+ }
+
+ /**
+ * 写入 [放行路由] 集合
+ * @param pathList 路由集合
+ * @return 对象自身
+ */
+ public SaServletFilter setExcludeList(List pathList) {
+ excludeList = pathList;
+ return this;
+ }
+
+ /**
+ * 获取 [拦截路由] 集合
+ * @return see note
+ */
+ public List getIncludeList() {
+ return includeList;
+ }
+
+ /**
+ * 获取 [放行路由] 集合
+ * @return see note
+ */
+ public List getExcludeList() {
+ return excludeList;
+ }
+
+
+ // ------------------------ doFilter
+
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
try {
// 执行全局过滤器
- SaTokenManager.getSaFilterStrategy().run(null);
+ SaRouterUtil.match(includeList, excludeList, () -> SaTokenManager.getSaFilterStrategy().run(null));
} catch (Throwable e) {
// 1. 获取异常处理策略结果
@@ -53,4 +128,6 @@ public class SaServletFilter implements Filter {
public void destroy() {
}
+
+
}