Сессия Torquebox stomplet пуста

Я пытаюсь реализовать аутентификацию пользователей для веб-сокетов в Torquebox, и, судя по всему, что есть в Интернете, я должен иметь доступ к HTTP-сеансу из stomplet, если я запускаю веб-приложение вместе с сервером stomp, который Я.

Моя конфигурация выглядит примерно так

web do
  context '/'
  host 'localhost'
end

stomp do
  host 'localhost'
end

stomplet GlobalStomplet do
  route '/live/socket'
end

Я пробовал также комментировать блоки паутины и топать, но ничего не меняется.

В принципе, розетки работают, могу подключиться, подписаться. В моем stomplet метод on_subscribe имеет несколько строк отладки

Rails.logger.debug "SESSION = #{subscriber.session}"
Rails.logger.debug "SESSION 2 = #{subscriber.getSession.getAttributeNames}"
Rails.logger.debug "SOCKET SESSION = #{TorqueBox::Session::ServletStore.load_session_data(subscriber.getSession)}"

И любые другие сочетания подобных вещей, но в каждом случае мне дают пустую сессию. Единственное исключение, когда я явно загружаю сеанс (как в последней строке отладки выше), мой сеанс содержит идентификатор сеанса и что-то вроде TORQUEBOX_INITIAL_KEYS, но идентификатор сеанса не является сеансом HTTP, а просто что-то вроде session-1 и ничего полезного .

У меня есть инициализатор в приложении rails, устанавливающий хранилище сеансов крутящего момента

MyApp::Application.config.session_store :torquebox_store, {
  key: '_app_key'
}

Я не получаю никаких исключений ни от чего, поэтому я предполагаю, что очевидных проблем нет, но я перепробовал все, что мог придумать, и до сих пор не имею сеанса, который я мог бы использовать.

Что я делаю не так?

Я использую Torquebox 3.1.0, Rails 4 и jRuby 1.7.11.


person PaReeOhNos    schedule 01.04.2014    source источник


Ответы (1)


Ну, кажется, я не делал ничего плохого сам по себе, но, похоже, в Torquebox есть основная ошибка (сейчас подаю отчет об ошибке)

Похоже, что веб-приложения Torx Box вполне довольны тем, что я назначаю пользовательский ключ для хранилища сеансов, и все работает так, как ожидалось. К сожалению, кажется, что stomplets ищут только обычный JSESSIONID и игнорируют пользовательский ключ.

Чтобы подтвердить, я удаляю пользовательский ключ, и это сработало. Затем я снова ввел его, и он снова перестал работать. С ключом все еще на месте, я вручную установил значение файла cookie JSESSIONID и снова подключился, и внезапно появился мой сеанс.

person PaReeOhNos    schedule 01.04.2014