RestTemplate与基本身份验证和交换方法之间的冲突

时间:2017-11-14 16:03:44

标签: java spring spring-boot basic-authentication resttemplate

我使用Spring 4.3和SpringBoot 1.5来创建一个必须调用外部REST服务的组件。此外部服务请求HTTP基本身份验证。

我发现SpringBoot提供了一个非常有用的构建器来设置RestTemplate属性,例如基本身份验证RestTemplateBuilder

要调用外部REST服务,我必须使用方法RestTemplate.exchange,因为List<T>返回类型。

new RestTemplateBuilder().basicAuthorization(username, password)
                         .build()
                         .exchange("/some/path/with/variables",
                                   HttpMethod.GET,
                                   new HttpEntity<>(new HttpHeaders()),
                                   new ParameterizedTypeReference<List<Integer>>() {},
                                   some, params)

这里的问题是exchange方法的签名请求HttpEntity类型的对象,它基本上是HttpHeaders的容器。

问题是,作为输入参数传递给HttpEntity方法的exchange对象是否会使用RestTemplateBuilder.basicAuthorization方法订阅Basic Auth标头集?

非常感谢。

1 个答案:

答案 0 :(得分:0)

在过去的几天里,我做了一些实验。传递给HttpEntity方法exchange实例不会订阅与RestTemplateBuilder设置的基本身份验证相关的信息。这两组标题合并为一组。

漂亮的镜头,春天;)