使用SpringWebClient访问oauth2保护的资源,其中令牌提供程序也受ssl保护

lstz6jyr  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(232)

尝试使用webclient访问oauth2保护的令牌和资源服务器。要求将证书添加到两个请求中。以下是我尝试向请求中添加证书的方式:

HttpClient resourceServerHttpClient = HttpClient.create()
        .tcpConfiguration(client -> client.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000))
        .secure(sslContextSpec -> {
          sslContextSpec.sslContext(oAuth2ClientSSLPropertiesConfigurer.getConstructedSslContexts().get("cpd"));
        });
    ClientHttpConnector customHttpConnector = new ReactorClientHttpConnector(resourceServerHttpClient);

    return WebClient.builder()
        .baseUrl(lisClientBaseUrl)
        .exchangeStrategies(exchangeStrategies)
        .clientConnector(customHttpConnector)
        .filter(oauth)
        .filters(exchangeFilterFunctions -> {
          exchangeFilterFunctions.add(logRequest());
          exchangeFilterFunctions.add(logResponse());
        })
        .build();

问题1:据我所知,上面的代码片段仅将证书传递给资源服务器请求。找到https://neuw.medium.com/spring-boot-oauth2-mutual-tls-client-client-credentials-grant-3cdb7a2a44ea 我的定制符合场景3。但是,唯一的方法是在我的api中切换完全React上下文(而不是servlet),访问defaultreactiveoauth2authorizedclientmanager、authorizedclientprovider等。有没有更简单的方法来实现这一点?问题2:是否有一种方法可以查看有关向令牌提供程序发出的请求的更多详细信息—以确保发送证书。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题