Как получить собственное имя куки в весенней безопасности
У меня есть два приложения A
а также B
которые работают на одном сервере с разными портами. Поскольку файлы cookie не зависят от порта, эти два приложения используют один и тот же файл cookie. JSESSIONID
, Когда я вхожу в один из них, меня выгоняют из другого.
Поэтому мне нужно изменить имя файла cookie для каждого из этих приложений. Как я могу иметь собственное имя файла cookie? Если это поможет, я использую весеннюю безопасность.
Задача решена
Как указал Майкл, мне не нужно было менять
JSESSIONID
имя вообще. Оба приложения используют один и тот же URL/Path
и именно поэтому второе печенье заменяет первое.
1 ответ
Вы не должны изменять имя файла cookie JSESSIONID. Файлы cookie не зависят от порта, но зависят от пути приложения. Поведение по умолчанию - установить cookie JSESSIONID в соответствии с путем приложения, и cookie из одного приложения не должен мешать использованию cookie второго приложения. Я беру spring-security-samples-contacts-3.1.0.RELEASE.war и копирую его дважды в папку webapp того же сервера: test.war и contacts.war. Я открыл оба приложения в одном браузере. Я использую Fiddler и вижу следующее: Когда я вхожу в приложение контактов, Tomcat устанавливает cookie в путь contacts
:
Set-Cookie: JSESSIONID=408F79D16A8665C73F5C30D66B102DA6; Path=/contacts/; HttpOnly
Аналогично с тестовым приложением:
Set-Cookie: JSESSIONID=ECAE9734E9A277F1E96D678BB67E558B; Path=/test/; HttpOnly
Тогда я могу без проблем работать с обоими приложениями одновременно