Существуют ли зрелые реализации HttpSession, основанные на Cookie?

1

Я хочу использовать HttpSession на основе cookie в контейнере serlvet. Все данные сеанса должны храниться внутри файла cookie. В сервлет-приложениях это редко встречается. В Rails (сеанс) и Playframework (сеанс) этот вид обработки сеанса является значением по умолчанию. Почему это так необычно?

В бетоне мне нужно решение для JBoss EAP6 (без фасов с сессией). Я нашел две реализации, основанные на фильтрах serlvet:

Знаете ли вы какие-либо альтернативы?

(Если возможно, я не хочу обсуждать плюсы и минусы вообще)

  • 0
    Вы можете уточнить, что вы имеете в виду, что сеанс хранится в куки.
Теги:
servlets
playframework
httpsession

1 ответ

0

В Java EE редко встречаются данные сеанса в cookie... потому что HttpSession реализуется во всех контейнерах сервлетов.

В постоянных сеансах cookie у вас есть ограничение по размеру, и вы должны использовать подписанные данные, чтобы избежать манипуляции с клиентской стороной сеанса. Вы должны шифровать данные, если хотите сохранить конфиденциальную информацию в сеансе. И все данные сеанса обмениваются с каждым запросом и ответом. Эти ограничения уходят с HttpSession.

Наибольший интерес для постоянных сеансов cookie заключается в том, что у вас может быть ферма из нескольких серверов, которая может отвечать на любой запрос, потому что сеанс содержится в запросе. Но это можно сделать в Java EE, используя липкие сессии на обратном прокси-уровне (потому что у вас есть обратные прокси почти в каждом серьезном центре обработки данных): обратные прокси знают о сеансе и передают запрос серверу, который его поддерживает.

Некоторые серверы Java EE имеют представление об общих сеансах.

ИМХО, это не то, что было бы очень сложно реализовать постоянный сеанс cookie на Java, это просто для профессиональных обычаев, он не был признан достаточно важным.

  • 0
    Я знаю , что HttpSession обычно реализуется контейнером сервлетов. Вопрос в том, почему они не предоставляют реализацию на основе файлов cookie в качестве альтернативы. Я не хочу обсуждать общие плюсы и минусы здесь. Есть больше, чем вы упомянули. Почти все серверы JavaEE обеспечивают некоторую репликацию сессий, и я знаю о липких сессиях. Но это не мой вопрос. Реализация подписей и шифрования самостоятельно - это то, чего я стараюсь избегать.
  • 0
    Поскольку я не являюсь программистом контейнера сервлетов, ниже приведено только мое мнение, но я думаю, что крупные разработчики контейнеров сервлетов не сочли его достаточно полезным. И пользователи этих контейнеров не просили об этом как о важной функции.
Показать ещё 1 комментарий
Сообщество Overcoder
Наверх
Меню