我希望幾個相關Web應用程序的客戶端保持自己的身份驗證狀態。這提高了可伸縮性,因爲不需要羣集節點之間的會話複製。它使得諸如Java Servlets和PHP等不同服務器技術的集成更加容易。客戶端會話
我的計劃如下:
- 設置與客戶端身份驗證後的用戶名和會話過期時間簽名和加密的cookie。
- 當客戶端發送請求時,服務器將解密並驗證Cookie,並根據Cookie值授予或拒絕訪問權限。
- 會話過期將通過重置cookie來更新。
想要使用會話的所有服務器只知道cookie機制和解密密鑰。另請參見:Session state in the client tier
是這種方法好不好?是否有可能將它集成到servlet容器/應用程序服務器中,以便它對應用程序是透明的?例如,servlet應該能夠使用HttpServletRequest#getRemoteUser()。這可能嗎?或者我需要像Spring Security這樣的容器級別以上的東西?是否有客戶端會話管理的現有庫?
這是他不想做的,因爲他希望解決方案具有可擴展性。不過,我認爲這是唯一的出路。 – 2010-01-25 10:33:11
我想擁有一個認證狀態的商店。我不想在服務器端存儲這個狀態。我有一些像http基本認證的想法,但想要更靈活(例如支持OpenID)。 – deamon 2010-01-25 10:43:30