2015-04-11 2 views
1

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

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

  • Stateless Servlet Filter «Этот фильтр по-прежнему находится в состоянии бета-версии». 2013
  • java-stateless-http-session Нет ссылок на использование и не требуется более года. Нет испытаний.

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

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

+0

Возможно, вы захотите уточнить, что вы имеете в виду, что сессия ** хранится ** в файле cookie. –

ответ

0

Это редкость в Java EE, чтобы данные сеанса сохраняется в куки ... потому что HttpSession реализована во всех сервлет.

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

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

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

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

+0

Я знаю, что HttpSession обычно реализуется ** ** контейнером сервлета. Вопрос в том, почему они не предоставляют реализацию на основе файлов cookie в качестве альтернативы. Я не хочу обсуждать здесь общие плюсы и минусы. Есть больше, чем вы упомянули. Практически все JavaEE-сервер предоставляет некоторую репликацию сеанса, и я знаю о липких сеансах. Но это не мой вопрос. Реализация подписей и шифрования сама по себе является тем, чего я стараюсь избегать. – martin

+0

Поскольку я не являюсь программистом-контейнером сервлетов, следующее мое мнение, но я думаю, потому что основные разработчики контейнеров сервлетов не нашли его достаточно полезным. И пользователи этих контейнеров не просили об этом в качестве важной функции. –

+0

да, все с Java - это «профессиональное использование» .. – blurrcat

Смежные вопросы