我使用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标头集?
非常感谢。
答案 0 :(得分:0)
在过去的几天里,我做了一些实验。传递给HttpEntity
方法的exchange
实例不会订阅与RestTemplateBuilder
设置的基本身份验证相关的信息。这两组标题合并为一组。
漂亮的镜头,春天;)