如何通过 API 网关配置对 eureka 客户端的 API 请求
Posted
技术标签:
【中文标题】如何通过 API 网关配置对 eureka 客户端的 API 请求【英文标题】:How to configure API request to eureka client through API gateway 【发布时间】:2020-04-20 23:14:17 【问题描述】:按照本指南:https://medium.com/omarelgabrys-blog/microservices-with-spring-boot-intro-to-microservices-part-1-c0d24cd422c3
不知道如何配置请求必须通过api网关?
例如,如果我直接调用 eureka 客户端。我的请求标头中不需要 jwt 身份验证。如何配置所有请求必须转发到 api 网关以验证身份验证。而且只有eureka server发现的eureka客户端请求不需要通过api网关?
请帮帮我!
【问题讨论】:
【参考方案1】:每个微服务都控制自己的访问策略。默认情况下,Spring Boot 要求所有请求都经过身份验证。微服务可以通过提供 ResourceServerConfigurer
类型的 bean 并覆盖 configure 方法来更改此策略,但这仅在您不需要身份验证时才需要。
public void configure(HttpSecurity http)
// This is the default behavior
http.authorizeRequests().anyRequest().authenticated();
然后您指示 API 网关将不记名令牌传递给您的微服务。这在 API Gateway 的配置中进行控制。假设您使用 YAML 进行配置,您应该在配置中有一个条目来指定如何处理安全性。
proxy:
auth:
routes:
my-route-name: oauth2
其中my-route-name
是来自zuul
条目的路由
zuul:
routes:
my-route-name:
path: /my-path
service-id: my-service
【讨论】:
感谢您的帮助。我认为您的想法看起来像 Spring Boot 中的 SSO,对吧?你能给我一个例子或git吗? 这可能对baeldung.com/spring-security-zuul-oauth-jwt有帮助以上是关于如何通过 API 网关配置对 eureka 客户端的 API 请求的主要内容,如果未能解决你的问题,请参考以下文章
如何在微服务和API网关架构中对不同的配置文件进行身份验证和授权