Spring SavedRequest了解X-Forwarded-Prefix

时间:2016-01-06 11:53:42

标签: spring spring-security spring-boot

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

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

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

之后,SavedRequestAwareAuthenticationSuccessHandler会将用户重定向到/b/XXX而不是/a/b/XXX

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

1 个答案:

答案 0 :(得分:1)

Spring 4.3 以来已修复,它提供RemoteIpValve ForwardedHeaderFilter

的替代方案