refactor: sa-token-solon-plugin 优化 Gateway 接口的处理(避免使用路由接口)

This commit is contained in:
noear
2025-07-29 11:19:25 +08:00
parent b0d42821d7
commit 4036788426
2 changed files with 3 additions and 8 deletions

View File

@@ -26,7 +26,6 @@ import cn.dev33.satoken.solon.util.SaSolonOperateUtil;
import cn.dev33.satoken.strategy.SaAnnotationStrategy; import cn.dev33.satoken.strategy.SaAnnotationStrategy;
import org.noear.solon.Solon; import org.noear.solon.Solon;
import org.noear.solon.core.handle.*; import org.noear.solon.core.handle.*;
import org.noear.solon.core.route.RoutingTable;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
@@ -161,10 +160,9 @@ public class SaTokenFilter implements SaFilter, Filter { //之所以改名,为
if (mainHandler instanceof Gateway) { if (mainHandler instanceof Gateway) {
//支持网关处理 //支持网关处理
Gateway gateway = (Gateway) mainHandler; Gateway gateway = (Gateway) mainHandler;
RoutingTable<Handler> mainRouting = gateway.getMainRouting(); mainHandler = gateway.find(ctx);
MethodType method = MethodTypeUtil.valueOf(ctx.method());
mainHandler = mainRouting.matchOne(ctx.pathNew(), method);
} }
Action action = (mainHandler instanceof Action ? (Action) mainHandler : null); Action action = (mainHandler instanceof Action ? (Action) mainHandler : null);
//1.执行前置处理(主要是一些跨域之类的) //1.执行前置处理(主要是一些跨域之类的)

View File

@@ -27,7 +27,6 @@ import cn.dev33.satoken.strategy.SaAnnotationStrategy;
import org.noear.solon.core.handle.*; import org.noear.solon.core.handle.*;
import org.noear.solon.core.route.RouterInterceptor; import org.noear.solon.core.route.RouterInterceptor;
import org.noear.solon.core.route.RouterInterceptorChain; import org.noear.solon.core.route.RouterInterceptorChain;
import org.noear.solon.core.route.RoutingTable;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
@@ -197,9 +196,7 @@ public class SaTokenInterceptor implements SaFilter, RouterInterceptor {
if (mainHandler instanceof Gateway) { if (mainHandler instanceof Gateway) {
//支持网关处理 //支持网关处理
Gateway gateway = (Gateway) mainHandler; Gateway gateway = (Gateway) mainHandler;
RoutingTable<Handler> mainRouting = gateway.getMainRouting(); mainHandler = gateway.find(ctx);
MethodType method = MethodTypeUtil.valueOf(ctx.method());
mainHandler = mainRouting.matchOne(ctx.pathNew(), method);
} }
Action action = (mainHandler instanceof Action ? (Action) mainHandler : null); Action action = (mainHandler instanceof Action ? (Action) mainHandler : null);