gpt4 book ai didi

java - 不允许直接调用微服务。只允许通过 API 网关

转载 作者:IT老高 更新时间:2023-10-28 13:46:56 24 4
gpt4 key购买 nike

也许这是一个奇怪的问题(我是微服务新手)。但我正在寻找有关如何进行此操作的一些信息。不需要特定于 Spring,但这是我目前正在使用的框架。

示例:假设我们有两个微服务

a) http://myurlfortesting.com:8085/api/rest/serviceone

b) http://myurlfortesting.com:8090/api/rest/servicetwo

我们已经设置了 Spring Zuul(充当 API 网关),其中包含转发传入调用的以下规则:

/rest/one -> http://myurlfortesting.com:8085/api/rest/serviceone

/rest/two -> http://myurlfortesting.com:8090/api/rest/servicetwo

问题...有没有办法阻止用户直接访问 A 和 B 中提到的服务(只允许通过 API 网关来的服务)?

这可以使用 Springs Zuul(充当 API 网关)通过设置一些额外的过滤器来完成,还是我们在微服务端点中设置它?

甚至想知道是否有办法甚至不处理不通过 API 网关来的微服务端点上的直接调用。

也许这是通过服务器特定规则解决的,与 Spring 无关?

非常感谢,

/D

最佳答案

假设您有防火墙,您可以将服务器的入站流量限制在您的 Zuul 端点所暴露的端口上,并禁止任何人直接访问微服务的端口。

如果您想避免使用防火墙路由,您可以强制端点在转发请求之前检查特定的 HTTP header 或 Zuul 设置的内容,但这很麻烦并且很容易规避。根据我过去的经验,“正确”的方法是通过防火墙来做到这一点。你的应用应该负责处理请求。您的防火墙应该负责决定谁可以访问特定端点。

关于java - 不允许直接调用微服务。只允许通过 API 网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41262716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com