Я работаю над базовой конфигурацией для тестов API с REST Assured framework.Страница входа использует j_spring_security_check
, и мне нужно выполнить проверку подлинности на основе файлов cookie.
Для запуска тестов мне необходимо получить файл cookie, позвонив по URL-адресу входа в систему.Предоставленный файл cookie соответствует сеансу на сервере.Последующие вызовы используют исходную аутентификацию и повторно используют один и тот же сеанс до истечения срока его действия.
После некоторого исследования я выяснил, что есть несколько способов сделать это:
- Я могу получить cookie-файл и передать его в тесты для выполнения последующих вызовов.
- Я могу использовать фильтр сеанса для автоматического захвата и применения сеанса, например:
SessionFilter sessionFilter = new SessionFilter();
given().
auth().form("John", "Doe").
filter(sessionFilter).
when().
get("/formAuth").
then().
statusCode(200);
given().
filter(sessionFilter). // Reuse the same session filter instance to automatically apply the session id from the previous response
when().
get("/x").
then().
statusCode(200);
Я могу использовать класс CookieFilter.
Цитата из Javadoc - Фильтр cookie можно использовать для отслеживания всех файлов cookie, отправляемых сервером, и использования их в последующих запросах.Это может пригодиться, когда нужно больше, чем просто SessionFilter.Например:
CookieFilter cookieFilter = new CookieFilter();
given().
filter(cookieFilter).
expect().
statusCode(200).
when().
get("/x");
given().
cookie("foo", "bar").
filter(cookieFilter). // Reuse the same cookie filter
// if "foo" is stored in cookieFilter it won't be applied because it's already applied explicitly
expect().
statusCode(200).
when().
get("/y");
Я думаю, что может быть больше способов сделать это, но главный вопрос - в чем преимущества использования SessionFilter над CookieFilter или наоборот?