【问题标题】:Spring Cloud Eureka Netflix zuul filtersSpring Cloud Eureka Netflix zuul 过滤器
【发布时间】:2020-04-15 17:27:13
【问题描述】:

我有三个使用 spring Eureka 服务器和 zuul 作为网关的 spring boot 微服务。我有身份验证微服务,它是验证用户的 zuul 网关。我有另外两个服务在不同的端口上运行。如果我通过 zuul 网关调用,我可以在 jwt 的帮助下保护这两个服务,但是由于我知道两个微服务端口和 url,我可以直接调用并获取响应,而无需通过网关 url。所以我如何保护这两个微服务。请帮我分享两个微服务之间的安全上下文。

【问题讨论】:

  • 你能分享你的代码吗

标签: spring spring-boot microservices spring-cloud


【解决方案1】:

我认为您正在寻找非 zuul 或 eureka 的微服务之间的安全设置。

在 WebSecurityConfigurerAdapter 的帮助下,您可以覆盖 CORS 设置并仅接受来自某个服务的请求,这样 zuul 就可以与服务对话,甚至可以与每个服务对话。但邮递员和其他客户无法做到这一点。

【讨论】:

  • 所以这意味着我需要编写扩展 WebSecurityConfigurerAdapter 类的每个服务。如果我这样做,那么我无法从其他微服务的 zuul 网关服务进行调用。因为它会未经授权的错误
  • 使用 JWT,您需要一种过滤机制来将令牌数据提取到 SecurityContextHolder 中。因此,您需要需要 WebSecurityConfigurerAdapter 才能激活的 JWTFilter。您可以将 JWT 逻辑外部化到一个单独的项目中,并通过 POM 在每个项目中导入它,以防止复制粘贴代码。使用 OAuth 或 OpenID,您不需要这样做,但使用 JWT,您需要自己提取它。虽然它只是每个服务可以复制的单个过滤器,但如果您问我,安全性也不会太麻烦。
猜你喜欢
  • 2015-11-13
  • 2017-11-02
  • 2016-07-11
  • 1970-01-01
  • 2017-07-21
  • 2018-08-23
  • 2023-03-04
  • 2016-08-31
  • 2018-08-25
相关资源
最近更新 更多