Spring Traverson和OAuth2RestTemplate

Spring Traverson和OAuth2RestTemplate,spring,hateoas,oauth2resttemplate,Spring,Hateoas,Oauth2resttemplate,我有一个OAuth2RestTemplate来处理与REST-API的通信,并尝试将其与Traverson结合使用,如下所示: @Bean public Traverson traverson( final OAuth2RestTemplate restTemplate ) { try { final Traverson traverson = new Traverson( new URI( this.baseUrl ), MediaType.APPLICATION_JSON

我有一个
OAuth2RestTemplate
来处理与REST-API的通信,并尝试将其与
Traverson
结合使用,如下所示:

@Bean
public Traverson traverson( final OAuth2RestTemplate restTemplate ) {
   try {
      final Traverson traverson = new Traverson( new URI( this.baseUrl ), MediaType.APPLICATION_JSON );
      traverson.setRestOperations( restTemplate );
      return traverson;
   }
   catch ( final URISyntaxException e ) {
      throw new BeanCreationException( e );
   }
}
现在尝试使用
traverson
时,模板可以很好地处理OAuth2舞蹈,获取一个令牌和全部-但是头
Authorization:Bearer…
不幸的是,
traverson
不会发送

因此,当我现在调用端点时,例如
traverson.follow(“xyz”)…
结果只是REST API提供程序的登录形式:-(

我的问题: 我是否遗漏了一些东西,或者我的“OAuth2RestTemplate with Traverson”方法根本不受支持,或者
Traverson
打算以这种方式使用


感谢您的帮助!目前我想说这根本不可能,但在这个“春季世界”中,大多数情况下都有办法做到这一点-也许你们中的一位知道如何做到!

我认为您需要在Traverson中设置预定义的HAL消息转换器

restTemplate.setMessageConverters(Traverson.getDefaultMessageConverters(mediaTypes));
在我的例子中,我使用了Traverson的扩展来成功地使用OAuth2 RestTemplate

public class ExtendedTraverson extends Traverson {

  public ExtendedTraverson(URI baseUri, RestTemplate restTemplate, List<MediaType> mediaTypes) {
    super(baseUri, mediaTypes);
    restTemplate.setMessageConverters(getDefaultMessageConverters(mediaTypes));
    setRestOperations(restTemplate);
  }

}
公共类ExtendedTraverson扩展Traverson{
公共ExtendedTraverson(URI baseUri、RestTemplate RestTemplate、列表媒体类型){
super(baseUri,mediaTypes);
setMessageConverters(getDefaultMessageConverters(mediaTypes));
setRestOperations(restTemplate);
}
}

Thx谢谢你的努力,xvronny。不幸的是,我们暂时取消了这项
Traverson
努力,所以我还没有机会测试你的建议。我会尽快处理,然后会欣然接受你的回答:-)