我目前使用shiro和tapestry-security插件來管理本地會話並保留數據。當通過SecurityUtils.getSubject().getSession()
獲得會話時,一切正常。但是,這意味着該應用程序充斥着shiro特定代碼的碎片。由於shiro使用servlet會話API,有沒有辦法以對應用程序透明的方式來做到這一點,並希望仍然允許我使用註釋,如@Persist
和@SessionState
?更改掛毯中的默認會話行爲
0
A
回答
0
我裝飾TapestrySessionFactory返回shiro會話,而不是包裝HttpServletSession。界面並不完全相同,因此需要一個(非常)簡單的強制功能。我得到了我所需要的:與shiro相關的唯一代碼由AppModule中的幾行代碼和一個將org.apache.shiro.session.Session轉換爲org.apache.tapestry5.services.Session的獨立函數組成。在應用程序的其餘部分,我像以前一樣使用會話功能(包括註釋),並且他們都在後臺由shiro管理。
2
我可能誤解了你的問題,但你可以注入的請求,並用它來獲得對會話的句柄:
@Inject
private HttpServletRequest httpRequest;
httpRequest.getSession();
這不使用@Persist
或@SessionState
阻止你。
相關問題
- 1. 掛毯確認對話
- 2. 掛毯5會話bean
- 3. 掛毯網格默認排序
- 4. MySQL更改默認會話日期
- 5. 更改默認行爲5.4
- 6. 更改System.Dynamic.ExpandoObject默認行爲
- 7. 掛毯shiro安全認證
- 8. 如何更改會話存儲在數據庫中的默認行爲
- 9. 爲Oracle用戶設置默認「更改會話」
- 10. 在asp.net mvc中更改會話變量超時的默認值
- 11. 更改默認onListItemClick行爲的ListView
- 12. 如何更改ThickBox的默認行爲?
- 13. 更改p的默認行爲:confirmDialog
- 14. 更改BindingList的默認行爲
- 15. 如何更改make的默認行爲
- 16. 更改Double.ToString()的默認行爲
- 17. 升級:掛毯5.1.0.5到掛毯5.2.6
- 18. 在ASP.NET中更改默認會話提供程序
- 19. 掛毯:一個下拉列表組件默認值
- 20. 繼承logging.Formatter更改默認行爲logging.Formatter
- 21. Django:django-tables2更改默認排序行爲
- 22. 更改默認幫助鍵行爲
- 23. 更改彈簧web應用程序的默認會話超時
- 24. 更改Word 2007中的默認行距
- 25. 更改網格中的默認行數
- 26. 更改爲默認樣式
- 27. 如何在掛毯中更改我的資產域
- 28. 掛毯4.1對話範圍。可能?
- 29. 創建掛毯
- 30. 掛毯jquery PageScroll
我的問題是我根本不想使用servlet httpSessions。現在解決它,但謝謝。 – 2012-08-10 16:01:39