Связывание сеанса cometd с сеансом HTTP

У нас есть веб-приложение, использующее Jetty 8.1, dojo и cometd, которое взаимодействует между браузером и веб-контейнером, используя (1 )API JSON/HTTP REST для синхронных операций и (2 )API cometd для получать многочисленные события с сервера.

Что нам не совсем понятно, так это то, как элегантно управлять сеансами аутентификации этих двух разных API, тем более что cometd для нас будет использовать веб-сокет вместо обычного HTTP, когда это возможно. Приложение использует аутентификацию на основе формы -с использованием стандартного модуля Jetty LDAP. Таким образом, с точки зрения HTTP контейнер предоставляет браузеру стандартный jsessionid, который выглядит следующим образом:

Cookie: jsessionid=758E2FAD7C199D722DA8B5E243E0E27D

Судя по сообщению Simone Bordet здесь , кажется, что рекомендуемым решением является передача этого токена во время рукопожатия cometd, что мы и делаем.

Проблема в том, что существует два принципиально разных сеанса -— сеанс HTTP и сеанс кометы Байе. По таким причинам, как потенциальные утечки памяти и проблемы с безопасностью, мы хотим, чтобы они завершались одновременно или были «парными». Если HTTP-сеанс пользователя завершается, мы хотим, чтобы соответствующий сеанс Байе также завершался, и наоборот -. Есть ли рекомендуемый способ сделать это?

6
задан Lightbeard 30 May 2012 в 17:01
поделиться