问题描述
尝试使用 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 中切换完全反应式上下文(不是 servlet),以访问 DefaultReactiveOAuth2AuthorizedClientManager、authorizedClientProvider 等。有没有更简单的方法来实现这一点? 问题 2:有没有办法查看有关对令牌提供者的请求的更多详细信息 - 以确保发送证书。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)