代码之家  ›  专栏  ›  技术社区  ›  Ruchira Gayan Ranaweera

URL路径重写未按预期工作

  •  0
  • Ruchira Gayan Ranaweera  · 技术社区  · 4 年前

    下面是一段代码,用于在将请求路由到正确的端点时重写路径。但是,仍然可以使用完整URL(原始)进行路由,而无需重写URL。

    密码 :

    @Override
    public Route.AsyncBuilder apply(PredicateSpec route) {
        return route
                .path("/api/out/**")
                .filters(f -> f
                        .removeRequestHeader("Cookie")
                        .filter(loggingGatewayFilter)
                        .filter(oauth2GatewayFilter)
                        .filter(this::filter)
                        .rewritePath("/api/out", "")
                )
                .uri(uri);
    }
    

    http://external-url/api/out/xyz/data/getNext

    http://external-url/xyz/data/getNext

    但路由器仍在调用完整的URL。

    服务器端/端点中的任何配置(http://external-url)可能导致此问题 ?

    Spring云调试日志

    +-------------------------------------------------+
    | 0 1 2 3 4 5 6 7 8 9 a b c d e f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 47 45 54 20 2f 76 31 2f 6f 6d 73 2f 74 72 61 6e |GET /xyz/data/get|
    |00000010| 63 68 65 73 3f 70 61 67 65 3d 30 26 73 69 7a 65 |Next?page=0&size|
    |00000020| 3d 31 30 30 26 63 72 65 61 74 65 64 42 65 66 6f |=100&createdBefo|
    |00000030| 72 65 3d 32 30 32 31 2d 30 31 2d 32 39 54 32 33 |re=2021-01-29T23|
    |00000040| 25 33 41 35 39 25 33 41 35 39 2e 39 39 39 25 32 |%3A59%3A59.999%2|
    |00000050| 42 30 38 25 33 41 30 30 26 63 72 65 61 74 65 64 |B08%3A00&created|
    |00000060| 41 66 74 65 72 3d 32 30 32 31 2d 30 31 2d 32 39 |After=2021-01-29|
    
    0 回复  |  直到 4 年前