From 82e929f03bc44c678606d68336090ccde3ee4db8 Mon Sep 17 00:00:00 2001 From: hongqiaowei Date: Thu, 16 Feb 2023 14:53:08 +0800 Subject: [PATCH] Fix gateway prefix problem --- .../java/com/fizzgate/filter/FlowControlFilter.java | 7 ++++++- .../src/main/java/com/fizzgate/util/WebUtils.java | 12 ++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/fizz-core/src/main/java/com/fizzgate/filter/FlowControlFilter.java b/fizz-core/src/main/java/com/fizzgate/filter/FlowControlFilter.java index 603d2e6..6446d11 100644 --- a/fizz-core/src/main/java/com/fizzgate/filter/FlowControlFilter.java +++ b/fizz-core/src/main/java/com/fizzgate/filter/FlowControlFilter.java @@ -128,7 +128,12 @@ public class FlowControlFilter extends FizzWebFilter { String gatewayPrefix = systemConfig.getGatewayPrefix(); if (StringUtils.isBlank(gatewayPrefix) || Consts.S.FORWARD_SLASH_STR.equals(gatewayPrefix)) { - service = Consts.S.FORWARD_SLASH_STR; + int secFS = path.indexOf(Consts.S.FORWARD_SLASH, 1); + if (secFS == -1) { + service = path.substring(1); + } else { + service = path.substring(1, secFS); + } } else { int secFS = path.indexOf(Consts.S.FORWARD_SLASH, 1); if (secFS == -1) { diff --git a/fizz-core/src/main/java/com/fizzgate/util/WebUtils.java b/fizz-core/src/main/java/com/fizzgate/util/WebUtils.java index 7690831..852005d 100644 --- a/fizz-core/src/main/java/com/fizzgate/util/WebUtils.java +++ b/fizz-core/src/main/java/com/fizzgate/util/WebUtils.java @@ -241,7 +241,11 @@ public abstract class WebUtils { if (StringUtils.isBlank(gatewayPrefix) || Consts.S.FORWARD_SLASH_STR.equals(gatewayPrefix)) { if (SystemConfig.DEFAULT_GATEWAY_TEST_PREFIX.equals(prefix)) { int trdFS = p.indexOf(Consts.S.FORWARD_SLASH, secFS + 1); - svc = p.substring(secFS + 1, trdFS); + if (trdFS == -1) { + svc = p.substring(secFS + 1); + } else { + svc = p.substring(secFS + 1, trdFS); + } } else { svc = p.substring(1, secFS); } @@ -386,7 +390,11 @@ public abstract class WebUtils { if (StringUtils.isBlank(gatewayPrefix) || Consts.S.FORWARD_SLASH_STR.equals(gatewayPrefix)) { if (SystemConfig.DEFAULT_GATEWAY_TEST_PREFIX.equals(prefix)) { int trdFS = p.indexOf(Consts.S.FORWARD_SLASH, secFS + 1); - p = p.substring(trdFS); + if (trdFS == -1) { + p = Consts.S.FORWARD_SLASH_STR; + } else { + p = p.substring(trdFS); + } } else { p = p.substring(secFS); }