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
努力,所以我还没有机会测试你的建议。我会尽快处理,然后会欣然接受你的回答:-)