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

在Spring云网关中定制请求

邓高韵
2023-03-14

在我的理解中,Spring Cloud Gateway必须实现一个HTTP客户端来发出反向代理请求。Spring框架提供了WebClient。我不知道Spring云网关是否真的在内部使用它。

WebClient webClient;
@RegisteredOAuth2AuthorizedClient("client-id") OAuth2AuthorizedClient authorizedClient;

this.webClient
            .get()
            .uri(this.uri)
            .attributes(oauth2AuthorizedClient(authorizedClient));

共有1个答案

窦英武
2023-03-14

事实上,没有必要手动拦截您的呼叫。有很多教程告诉如何在Spring Cloud Gateway上启用OAuth2授权。您可以遵循官方教程的这一部分。你可以在这个Okta相关指南页面上找到一些有用的东西。或者这里是我曾经使用的代码:

/**
 * OAuth2.0 authorization filter setup.
 *
 * @param http
 * @return security filter
 */
@Bean
@ConditionalOnMissingBean
public SecurityWebFilterChain springSecurityFilterChainWithAuth(ServerHttpSecurity http) {
    http
            .authorizeExchange()
            .anyExchange().authenticated()
            .and()
            .oauth2ResourceServer()
            .jwt();
    return http.build();
}

属性文件中的其他配置:

spring:
  security:
    oauth2:
      resourceserver:
        jwt:
          issuer-uri: [your_uri_here]
 类似资料:
  • 我想在使用Spring Cloud Gateway时对uri的一部分进行消毒。 使用全局过滤器是正确的方法?或者是否有其他钩子可以用来拦截请求并修改URI?

  • 我有一个带有一些endpoint的anexo API,比如: 如何将Spring Cloud Gateway与这些endpoint一起使用?

  • 我为所有传入请求创建了全局路由,并使用AbstracTerrorWebExceptionHandler。 我的application.yml 运行应用程序时的日志: 谢谢你的帮助。

  • 我使用的是堆栈下 SpringCloudGatewayHoxton发行版,Java1.8,Linux操作系统 我看到下面的异常在重启后消失,但在一段时间后再次出现。我没有为直接内存做任何显式设置。下面是使用的JVM参数- 有人能告诉我错误的原因吗?

  • 我试图在Spring云网关中设置速率限制。 我试图在应用程序中配置过滤器。yaml如下所示 我得到下面的错误 如何在spring云网关中实现速率限制?

  • 我还需要NGINX来服务静态内容,如JS等,并向后端反向代理请求,还是可以用Spring Cloud Gateway来完成?Spring docs有以下图像: 我没有发现关于如何将静态内容返回给客户端的描述,这是否意味着它被认为是糟糕的做法,我需要额外的反向代理步骤来增加它的延迟?如果没有,我可以在哪里找到更多关于如何使用Spring Cloud Gateway实现这一点的信息,尤其是如果我要使用