Как отключить файл cookie сеанса в Apache HttpAsyncClientBuilder - PullRequest
0 голосов
/ 28 января 2019

Я разговариваю со службой, которая не может получить cookie для аутентификации пользователя, если в запросе есть cookie JSESSIONID, и я не могу изменить эту службу.Он также возвращает этот файл cookie сеанса при каждом ответе, поэтому мой первый запрос работает (не другой файл cookie, кроме файла пользователя), но следующие запросы всегда будут сбои.

В моей конфигурации restTemplate используется фабрика пользовательских запросов, которая расширяет Spring HttpComponentsAsyncClientHttpRequestFactory с AsyncClient от Apache HttpAsyncClientBuilder.

Есть ли способ настроить его так, чтобы он всегда игнорировал файл cookie сеанса?

Заранее спасибо!

1 Ответ

0 голосов
/ 29 января 2019

Было бы неплохо найти решение, подразумевающее только настройку, но я не смог, поэтому в итоге я расширил 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);
        }
    }
}

И добавил его в мои HttpAsyncClientBuilder и HttpClientBuilder с помощью метода setDefaultCookieStore.

Возможно, не самая лучшая вещь, но она хорошо работает.

...