【发布时间】:2020-01-14 01:30:54
【问题描述】:
我想在使用 Spring Cloud Gateway 时清理部分 uri。
例如:http://localhost:8080//login。
在这个例子中,我想在 Spring Gateway 尝试为这个请求找到合适的路由之前,用单斜杠删除双斜杠。
使用全局过滤器是正确的方法吗?或者是否有任何其他钩子可以用来拦截请求并修改 uri?
【问题讨论】:
我想在使用 Spring Cloud Gateway 时清理部分 uri。
例如:http://localhost:8080//login。
在这个例子中,我想在 Spring Gateway 尝试为这个请求找到合适的路由之前,用单斜杠删除双斜杠。
使用全局过滤器是正确的方法吗?或者是否有任何其他钩子可以用来拦截请求并修改 uri?
【问题讨论】:
我创建了一个实现org.springframework.web.server.WebFilter 的过滤器类并将其注册为Spring bean。
现在这个过滤器在 Spring Gateway 尝试匹配路由之前就被调用了。这样我就能够清理请求 URI。我查看了RewritePathGatewayFilterFactory 以获得灵感。
【讨论】: