如何避免使用 Zuul 重定向到另一台主机?

How to avoid redirect to another host with Zuul?

我尝试使用 Zuul,它是 Spring Cloud Netflix 中使用的反向代理。 我从 spring 博客 (https://spring.io/blog/2015/02/03/sso-with-oauth2-angular-js-and-spring-security-part-v)

上的教程开始了一个项目

不过我不确定我是否正确理解了 Zuul 的作用。

如果我去 localhost:8080/login,我认为 Zuul 会代理我的请求以便我留在 localhost:8080 但是我得到了一个 302 重定向到 localhost:9999/uaa/login。

配置的zuul路由如下:

zuul: routes: resource: path: /resource/** url: http://localhost:9000/resource login: path: /login/** url: http://localhost:9999/uaa/login user: path: /user/** url: http://localhost:9999/uaa/user auth: path: /auth/** url: http://localhost:9999/uaa/

是否有可能一直保持 localhost:8080(我认为 Zuul 应该这样做)?

完整的项目在 github 上可用,因此可以 运行 在本地:https://github.com/hlassiege/oauth-social-zuul

重定向实际上是由 Spring 安全引起的,而不是由配置的 Zuul 部分引起的,因此无论 Zuul 配置如何,安全功能都会阻止您在通过身份验证之前访问任何内容。 "localhost:9999/uaa" 处的服务器是 OAuth2 授权服务器。它扮演的角色类似于 Github 或 Facebook 在 SSO 场景中的角色("Login with Facebook" 等)。您不想代理这些调用,因为服务器处理自己的协议。如果您没有 OAuth2 SSO,那么您可以代理调用任何您想要的东西。