2014-04-01 37 views
0

我試圖在Torquebox中實現web套接字的用戶身份驗證,並且根據互聯網上的所有內容,如果我正在運行Web應用程序,我應該可以從一個很小的內部訪問HTTP會話沿着單塊服務器,我是。Torquebox stomplet session empty

我的配置看起來像這樣

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)}" 

而且這些樣的東西的任何其他組合,但在任何情況下,我給出一個空會話。唯一的例外是,當我明確地加載會話(如上面的最後一個調試行),我的會話包含一個會話ID和類似TORQUEBOX_INITIAL_KEYS,但會話ID不是HTTP會話,並且只是類似於session-1而沒有任何用處。

我已經在軌的初始化器應用程序設置力矩箱會話存儲

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

,所以我認爲沒有明顯的問題,我沒有收到任何來自任何異常,但我用盡了一切我可以想到,但仍然沒有可以使用的會話。

我在做什麼錯?

我使用Torquebox 3.1.0,軌道4,5,和JRuby 1.7.11

回答

0

嗯,看來我是沒有做任何事情每本身錯了,但似乎是在Torquebox一個潛在的bug (現在提交一個bug報告)

看起來扭矩盒子的網絡應用程序對我爲會話存儲分配一個自定義密鑰非常滿意,並且每個按預期工作。不幸的是,它似乎好像正在尋找正常JSESSIONID,並忽略自定義鍵。

要確認,我刪除了自定義密鑰,它工作。然後我重新引入它,並且再次停止工作。關鍵還在,我手動設置了JSESSIONID cookie的值,並重新連接,突然間我的會話出現了。