Spring Cloud Eureka Netflix zuul 过滤器
Posted
技术标签:
【中文标题】Spring Cloud Eureka Netflix zuul 过滤器【英文标题】:Spring Cloud Eureka Netflix zuul filters 【发布时间】:2020-04-15 17:27:13 【问题描述】:我有三个使用 spring Eureka 服务器和 zuul 作为网关的 spring boot 微服务。我有身份验证微服务,它是验证用户的 zuul 网关。我有另外两个服务在不同的端口上运行。如果我通过 zuul 网关调用,我可以在 jwt 的帮助下保护这两个服务,但是由于我知道两个微服务端口和 url,我可以直接调用并获取响应,而无需通过网关 url。所以我如何保护这两个微服务。请帮我分享两个微服务之间的安全上下文。
【问题讨论】:
你能分享你的代码吗 【参考方案1】:我认为您正在寻找非 zuul 或 eureka 的微服务之间的安全设置。
在 WebSecurityConfigurerAdapter 的帮助下,您可以覆盖 CORS 设置并仅接受来自某个服务的请求,这样 zuul 就可以与服务对话,甚至可以与每个服务对话。但邮递员和其他客户无法做到这一点。
【讨论】:
所以这意味着我需要编写扩展 WebSecurityConfigurerAdapter 类的每个服务。如果我这样做,那么我无法从其他微服务的 zuul 网关服务进行调用。因为它会未经授权的错误 使用 JWT,您需要一种过滤机制来将令牌数据提取到 SecurityContextHolder 中。因此,您需要需要 WebSecurityConfigurerAdapter 才能激活的 JWTFilter。您可以将 JWT 逻辑外部化到一个单独的项目中,并通过 POM 在每个项目中导入它,以防止复制粘贴代码。使用 OAuth 或 OpenID,您不需要这样做,但使用 JWT,您需要自己提取它。虽然它只是每个服务可以复制的单个过滤器,但如果您问我,安全性也不会太麻烦。以上是关于Spring Cloud Eureka Netflix zuul 过滤器的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud Zuul 添加 ZuulFilter
spring cloud eureka ip或者域名怎么获取
Spring Cloud:服务治理——Spring Cloud Eureka