0

我正在使用 spring boot 调用另一个服务。当我的配置如下时,它不会添加从我正在调用的服务返回的 jsessionid(cookie)。

public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
    RestTemplate rt = restTemplateBuilder
        .rootUri(uri)
        .basicAuthentication(
                 username
                ,password)
        .additionalInterceptors(new RestTemplateInterceptor(stuff, stuff))
        .build();
    rt.setRequestFactory(new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()));

    return rt;          
}

当我使用此配置调用时,它会从我调用的服务中添加 jsessionid(cookie)。

public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
    RestTemplate rt = restTemplateBuilder
        .rootUri(uri)
        .basicAuthentication(
                 username
                ,password)
        .build();
    
    return rt;          
}

我的问题是如何让 BuffereingClientHttpRequestFactory 将 jsessionid(cookie) 从之前的调用中添加到服务中?

提前致谢

4

1 回答 1

0

这似乎解决了我的问题(查看 HttpComponentsClientHttpRequestFactory)

public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
RestTemplate rt = restTemplateBuilder
    .rootUri(uri)
    .basicAuthentication(
             username
            ,password)
    .additionalInterceptors(new RestTemplateInterceptor(stuff, stuff))
    .build();
rt.setRequestFactory(new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory()));

return rt;          

}

于 2021-01-21T19:53:57.693 回答