Spring 在 Zuul 上建立和共享的安全预授权过滤器 Session
Spring Security Preauthorization Filter On Zuul To Establish and Share Session
我在一个开发团队中从事使用 Spring-based 微服务的大型项目。我们最近发现了 Spring Cloud 项目,并且正在尝试实施 Netflix 服务、Zuul、Eureka、Ribbon 等。
在我们的环境中,在通过外部服务 pre-authorized 之前,任何人都无法访问我们的应用程序 运行 所在的域。一旦他们到达我们的应用程序,我们将能够通过授权服务提供的 header 令牌获取用户的身份。
我想让 Zuul 设置 Spring 安全性,使用预身份验证过滤器来建立用户的 session,并使用 Spring Session 使session 可用于所有 back-end 个微服务。
这是合法的做法吗?我能看到的关于 Zuul 安全性的唯一信息是能够将 OAuth2 令牌代理到 back-end 服务,但我们不需要 OAuth2。有没有更好的方法来建立用户的 session 并在我们的 back-end 架构中跨服务共享它?
请看下面Tutorial
您可以跳转到 GitHub
上的代码
我能够启动项目 运行,现在正在修改内存中身份验证以使用 Ldap。我是 Java 的新手,发现本教程非常简单。
你的,
迈克·科瓦尔斯基
像你一样,我不需要 OAuth,并且发现 Zuul 在没有 OAuth 的情况下缺乏身份验证支持。我想在不失去 Spring 云发现和客户端负载平衡能力的情况下调用身份验证服务。我通过稍后如下装饰 RibbonRoutingFilter
来实现这一点。请注意,此方法需要禁用原始 RibbonRoutingFilter
,这可以通过 application.yml
中的一行来完成:zuul.RibbonRoutingFilter.route.disable: true
基本上,在将请求委托给原始 RibbonRoutingFilter
之前,我备份了原始服务 ID 并用 auth 服务 id 覆盖它。如果auth成功,我恢复原来的service id,重新委托给原来的RibbonRoutingFilter
请求。如果认证不成功,我return报错。我的 GitHub 上的完整代码:AuthAwareRoutingFilter.java
我在一个开发团队中从事使用 Spring-based 微服务的大型项目。我们最近发现了 Spring Cloud 项目,并且正在尝试实施 Netflix 服务、Zuul、Eureka、Ribbon 等。
在我们的环境中,在通过外部服务 pre-authorized 之前,任何人都无法访问我们的应用程序 运行 所在的域。一旦他们到达我们的应用程序,我们将能够通过授权服务提供的 header 令牌获取用户的身份。
我想让 Zuul 设置 Spring 安全性,使用预身份验证过滤器来建立用户的 session,并使用 Spring Session 使session 可用于所有 back-end 个微服务。
这是合法的做法吗?我能看到的关于 Zuul 安全性的唯一信息是能够将 OAuth2 令牌代理到 back-end 服务,但我们不需要 OAuth2。有没有更好的方法来建立用户的 session 并在我们的 back-end 架构中跨服务共享它?
请看下面Tutorial
您可以跳转到 GitHub
上的代码我能够启动项目 运行,现在正在修改内存中身份验证以使用 Ldap。我是 Java 的新手,发现本教程非常简单。
你的,
迈克·科瓦尔斯基
像你一样,我不需要 OAuth,并且发现 Zuul 在没有 OAuth 的情况下缺乏身份验证支持。我想在不失去 Spring 云发现和客户端负载平衡能力的情况下调用身份验证服务。我通过稍后如下装饰 RibbonRoutingFilter
来实现这一点。请注意,此方法需要禁用原始 RibbonRoutingFilter
,这可以通过 application.yml
中的一行来完成:zuul.RibbonRoutingFilter.route.disable: true
基本上,在将请求委托给原始 RibbonRoutingFilter
之前,我备份了原始服务 ID 并用 auth 服务 id 覆盖它。如果auth成功,我恢复原来的service id,重新委托给原来的RibbonRoutingFilter
请求。如果认证不成功,我return报错。我的 GitHub 上的完整代码:AuthAwareRoutingFilter.java