Spring WebClient配置Okta OAuth2

问题描述 投票:0回答:1

我正在构建一个API网关,该网关使用OAuth2的Spring Webflux,Spring Cloud Gateway,Spring Cloud Security和Okta。

这是我的RouteLocator,通过它可以给我的Foo Microservice打电话。

@Bean
public RouteLocator routeLocator(RouteLocatorBuilder builder, TokenRelayGatewayFilterFactory filterFactory) {
    return builder.routes()
            .route("foo", r ->
                    r.path("/foo")
                            .filters(f -> f
                                    .rewritePath("/foo", "/api/v1/foo")
                                    .filter(filterFactory.apply()))
                            .uri("lb://foo-service")
            )
            .build();
}

这很好用。

但是,由于我需要汇总不同微服务的结果,比如说Foo和Bar,所以我正在创建一个负载均衡的Spring WebClient bean,可以用来进行http调用:

@Bean
@LoadBalanced
public WebClient.Builder webClientBuilder() {
    return WebClient.builder();
}

我如何配置WebClient以按照TokenRelayGatewayFilterFactory在RouteLocator中的相同方式在每个请求上传递令牌?

java oauth-2.0 spring-webflux okta spring-cloud-gateway
1个回答
0
投票

看看ServletOAuth2AuthorizedClientExchangeFilterFunction(或等效的反应性)该视频将更详细地介绍它:https://youtu.be/v2J32nd0g24?t=2168

© www.soinside.com 2019 - 2024. All rights reserved.