Spring Cloud Eureka Netflix zuul过滤器

Spring Cloud Eureka Netflix zuul过滤器,spring,spring-boot,microservices,spring-cloud,Spring,Spring Boot,Microservices,Spring Cloud,我有三个SpringBootMicro服务,它们使用SpringEureka服务器和zuul作为网关。我有认证微服务,这是zuul网关验证用户。我还有另外两个服务正在不同的端口上运行。如果我通过zuul gateway呼叫,我可以在jwt的帮助下保护这两个服务,但由于我知道两个微服务端口和url,我可以直接呼叫并获得响应,而无需通过gateway url。所以我想知道如何保护这两个微服务。请帮助我在两个微服务之间共享安全上下文。我认为您正在寻找彼此的微服务中的安全设置,而不是zuul或eurek

我有三个SpringBootMicro服务,它们使用SpringEureka服务器和zuul作为网关。我有认证微服务,这是zuul网关验证用户。我还有另外两个服务正在不同的端口上运行。如果我通过zuul gateway呼叫,我可以在jwt的帮助下保护这两个服务,但由于我知道两个微服务端口和url,我可以直接呼叫并获得响应,而无需通过gateway url。所以我想知道如何保护这两个微服务。请帮助我在两个微服务之间共享安全上下文。

我认为您正在寻找彼此的微服务中的安全设置,而不是zuul或eureka


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

你能分享你的代码吗?是的,这意味着我需要为每个服务编写扩展WebSecurityConfigureAdapter类的类。如果我这样做了,那么我就无法从zuul网关服务和其他微服务拨打电话。因为JWT会导致未经授权的错误,所以您需要一种过滤机制将令牌数据提取到SecurityContextHolder中。因此,您需要JWTFilter,它需要激活WebSecurity配置适配器。您可以将JWT逻辑外部化到一个单独的项目中,并通过POM将其导入每个项目,以防止复制粘贴代码。对于OAuth或OpenID,您不需要这样做,但是对于JWT,您需要自己提取它。虽然它只是一个单一的过滤器,每个服务都可以复制,但如果你问我的话,对安全性没有太大的麻烦。