使用以下架构时使用两个代理
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
?