Я пытаюсь реализовать аутентификацию пользователей для веб-сокетов в 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.