Spring SavedRequest了解X-Forwarded-Prefix

使用以下架构时使用两个代理

                    X-Forwarded-Prefix=/a  X-Forwarded-Prefix=/a
 /a/b/auth  +----------+  /b/auth  +----------+  /b/auth +----------+
   +------->|          |+--------->|          |+-------->|          |
            |  HTTPd   |           |   Zuul   |          | Auth     |
   <-------+|          |<---------+|          |<--------+| Service  |
            +----------+           +----------+          +----------+

当过滤器在auth流期间触发HttpSessionRequestCache时(当用户未经过身份验证时),即使使用server.use-forward-headers = true,也会在不考虑X-Forwarded-Prefix的情况下保存请求(听起来正常,因为RemoteIpValve不处理X-Forwarded-Prefix) .

因此,SavedRequestAwareAuthenticationSuccessHandler将用户重定向/ b / XXX而不是/ a / b / XXX

这可能是一个问题吗?或者只是我的用例太罕见了,我必须自己处理标题X-Forwarded-Prefix?

最佳答案 修复自Spring 4.3以来提供了名为
ForwardedHeaderFilter的RemoteIpValve的替代方案

点赞