fix: WebUtils.getClientReqPathPrefix should return /proxytest/ when request path is /proxytest/test/xxx

This commit is contained in:
hongqiaowei
2021-01-22 14:16:49 +08:00
parent af685e172c
commit 461467640a
2 changed files with 37 additions and 1 deletions

View File

@@ -267,7 +267,12 @@ public abstract class WebUtils {
public static String getClientReqPathPrefix(ServerWebExchange exchange) {
String p = exchange.getRequest().getPath().value();
return p.substring(0, p.indexOf(getClientService(exchange)));
// return p.substring(0, p.indexOf(getClientService(exchange)));
byte i = 7;
if (p.charAt(6) == 't') {
i = 11;
}
return p.substring(0, i);
}
public static String getClientReqQuery(ServerWebExchange exchange) {

View File

@@ -0,0 +1,31 @@
package we.util;
import org.junit.jupiter.api.Test;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author hongqiaowei
*/
public class WebUtilsTests {
@Test
void getClientReqPathPrefixTest() {
MockServerHttpRequest mockRequest = MockServerHttpRequest.get("http://127.0.0.1:8600/proxytest/xservice/ybiz").build();
MockServerWebExchange mockExchange = MockServerWebExchange.from(mockRequest);
String clientService = WebUtils.getClientService(mockExchange);
assertEquals(clientService, "xservice");
String clientReqPathPrefix = WebUtils.getClientReqPathPrefix(mockExchange);
assertEquals(clientReqPathPrefix, "/proxytest/");
MockServerHttpRequest mr = MockServerHttpRequest.get("http://127.0.0.1:8600/proxytest/test/ybiz").build();
MockServerWebExchange me = MockServerWebExchange.from(mr);
String cs = WebUtils.getClientService(me);
System.err.println(cs);
String crpp = WebUtils.getClientReqPathPrefix(me);
System.err.println(crpp);
}
}