0
是否可以從RealmBase.athenticate方法訪問會話ID?我需要從我的自定義領域類中存儲與數據庫關聯的其他信息,並在以下請求期間檢索它。我正在使用Tomcat 8.謝謝!從RealmBase對象訪問sessionid
是否可以從RealmBase.athenticate方法訪問會話ID?我需要從我的自定義領域類中存儲與數據庫關聯的其他信息,並在以下請求期間檢索它。我正在使用Tomcat 8.謝謝!從RealmBase對象訪問sessionid
編號
認證不需要使用會話,因此它不會被烘焙到API中。身份驗證也應該從會話管理中分離出來,所以它也不會被烘焙到API中。
你可能仍然可以做到這一點,但它需要一些欺騙。
ThreadLocal
的Valve。AuthenticationValve
之前註冊閥門。ThreadLocal
,然後調用鏈。Realm
中,從ThreadLocal
中獲取對象。ThreadLocal
中刪除請求...即使發生異常。
謝謝你的迴應,但似乎不工作。我已經用2個具體的附加類覆蓋了2個方法RealmBase.authenticate(String userId,String accessToken)和FormAuthenticator.authenticate(Request request,HttpServletResponse response)。有兩個不同的問題:1)似乎2種方法使用不同的線程2)在一些調用之後,重用了ThreadId,因此ThreadLocal在線程之間共享,導致信息重疊。 :-(請問你能給我一些例子嗎? – 2015-02-03 00:17:40
我不會爲你寫代碼,它只是一個建議什麼可以工作。是的,線程被重新使用......這就是爲什麼我包括步驟#5上面:它會刪除應該是私密的信息如果您遇到信息泄漏,這是因爲您沒有執行上述第5步 – 2015-02-03 20:53:03
如果沒有任何東西,認證器閥門會自動添加到Tomcat的閥門鏈中您需要明確配置您的''內的認證閥,並確保閥鏈中的*後*與處理ThreadLocal的閥相比*更晚*。 –
2015-02-03 20:54:09