当前位置: 首页 > 知识库问答 >
问题:

如何验证Spring云网关中传入服务的标头?我需要调用其他两个REST API调用(GET/POST)来验证标头

嵇出野
2023-03-14

我必须验证标题。例如,对spring云网关的传入请求是

https://spring-test-gateway.com/cloud/gateway/test/

标题:身份验证令牌:1244

要求:调用两个REST API

a)一种是基于授权令牌获取用户角色

b) 另一个是从auth令牌(/validate/userid)获取用户id

如果用户已经发送了正确的令牌,那么我们将转发到正确的微服务。

问题是如何调用上述2个REST API。我们想到在自定义过滤器中调用这两个微服务,并尝试使用RestTemboard。我们无法实现它。

很抱歉如果问题是基本的。因为SpringCloudGateway中不允许使用RestTemplate。可能是配置错误。对这一问题的任何见解都可能有助于我们进一步开展工作。

共有1个答案

常俊爽
2023-03-14

我们必须为此使用定制过滤器。在定制的过滤器中,我们可以调用上面的rest服务,这是可以实现的。

https://cloud.spring.io/spring-cloud-gateway/multi/multi__developer_guide.html#_writing_custom_gatewayfilter_factories

 类似资料:
  • 一个客户端在我的SpringCloudGateway2上用它的证书点击了一条路由。我成功地使用x509身份验证对客户端进行了身份验证,然后,在将请求转发到下游服务之前,我想将主体名称添加到请求的cutom头中。 我已经创建了过滤器,但无法将主体名称放入标题值中。 下面是我的网关过滤器应用方法实现 问题是如何正确设置Headervalue,clientName.block()抛出异常...有什么建议

  • 我是Swagger的新手。 我使用Swagger UI来生成Swagger文档。我有两个API调用。第一个调用是基于用户名和密码生成令牌。第二次调用需要第一次调用生成的令牌。 我如何使用Swagger UI设置第二次调用的令牌?

  • 我有一个Spring Boot rest服务,它将调用另一个web服务(用.NET编写),但它需要安装web服务的服务器的公共证书。

  • 在邮递员的每一个请求中,Vertx处理程序都会打两次电话。 我有两个处理程序,在调用请求处理处理程序之前将被调用。一个是设置头,一个是验证用户,但两个都是调用两次。 我在httpServerVerticle中的代码片段 在我得到的日志中

  • 我实际上是在努力做下面的事情:我的服务类 这让我想要的没有被调用,实际上与这个模拟没有任何交互。你知道我做错了什么吗??

  • 简而言之,应该在哪里执行输入验证和身份验证验证?在 API 网关和每个微服务中?仅在 API 网关中?仅在每个微服务中? 也许部分在api网关中,部分在每个网关中? 谢谢你的回答!