0

我想使用 Crnk Client 3.4 来使用受 OAuth2 保护的 JSON:API 端点。我正在使用client_credentials授权和 Spring Security OAuth2(带引导)来配置凭据。

由于 Spring 团队决定尝试强制每个人使用响应式 WebClient,因此没有开箱即用的 RestTemplate 拦截器可以从 Spring Security OAuth2 检索访问令牌,这表明我必须做一些我自己的集成。

是否有向CrnkClient实例提供访问令牌的最佳实践?该文档SecurityModule顺便提到,但它似乎并不真正支持添加凭据。我可以编写一个模块,但似乎要添加我想要实现的标头HttpAdapterListener,并且模块不提供注册它们的机制;相反,他们有HttpRequestProcessor,客户端根本不使用。

我可以看到两个可能的干净集成选项;这些是推荐的还是不鼓励的?

  1. 编写缺少ClientHttpRequestInterceptor的集成 Spring Security OAuth2。使用并添加 OAuth2 拦截器RestTemplate在 bean 方法中创建一个。RestTemplateBuilder打电话crnkClient.setHttpAdapter(new RestTemplateAdapter(interceptedRt))
  2. 编写一个 CrnkModule实现HttpAdapterAware,它是一个 Spring bean,并提供一个HttpAdapterListener检索访问令牌并调用HttpAdapterRequest#header.
4

0 回答 0