我正在与服务联系,如果请求中包含JSESSIONID cookie,则该服务无法获取用户身份验证cookie,并且我无法修改此服务。 它还会在每个响应上返回此会话cookie,因此我的第一个请求可以正常工作(除了用户的cookie之外没有其他cookie),但是下一个请求将始终失败。
我的restTemplate配置使用一个自定义请求工厂,该工厂使用来自Apache HttpComponentsAsyncClientHttpRequestFactory
的AsyncClient扩展了Spring HttpAsyncClientBuilder
。
有没有一种方法可以配置为始终忽略会话cookie?
谢谢!
答案 0 :(得分:0)
找到一个仅包含配置的解决方案会很不错,但是我不能,所以我最终扩展了BasicCookieStore:
public class DefaultCookieStore extends BasicCookieStore {
private static String SESSION_COOKIE_NAME = "JSESSIONID";
@Override
public void addCookie(Cookie cookie) {
if (!SESSION_COOKIE_NAME.equals(cookie.getName())) {
super.addCookie(cookie);
}
}
}
并使用setDefaultCookieStore
方法将其添加到我的HttpAsyncClientBuilder和HttpClientBuilder中。
可能不是最好的东西,但是效果很好。