bboss session 共享框架 v4.0.9 發布
bboss 會話共享4.0.9發布,4.0.9增加了以下特性:
-
升級mongodb客戶端驅動到mongo-java-driver-3.0.3
-
支持mongodb最新穩定版本3.0.6(終于可以使用最新的高性能、可伸縮的NoSQL數據存儲引擎WiredTiger了
),同時兼容mongodb 2.6.x
bboss 會話共享功能特點:
作 用:為應用提供統一會話管理功能,避免集群部署場景下負載切換session丟失問題;
跨 域跨應用共享會話并實現SSO功能;解決了會話共享五大技術難題:session數據序列 化問題,session sticking問題,跨域跨應用session共享問題,跨容器 (tomcat,jetty,weblogic)共享session問題,sso單點登入單點登出一致性問題。
存 儲:采用mongodb存儲會話數據,采用增量模式修改會話屬性,簡單高效
序列化:采用bboss序列化機制以xml格式序列化會話數據,可讀性好,易于監控,提供序列化 插件,擴展性強
規 范:遵 循servlet 2/3規范,可無縫與現有應用系統集成, 無需或者少量修改應用代碼。Session監聽器需遵循bboss會話共享規范,可將原來容器 session監聽器遷移到bboss會話共享實現。如過修改session中對象數據, 必須調用session.setAttribute方法將對象數據更新到mongodb中,以便將更新后的數據共享給其他應用。
兼容性:跨容器,兼容業界主流的應用服務器(tomcat,weblogic,webspere,jetty),支持容器會話管理和bboss會話管理兩種機制,可根據實際需要自由切換應用會話管理機制。
約 束:無約束,無需session sticking,客戶端請求可以平均分派給各集群節點,支持 lvs,haproxy,ngix 4,7層負載。
安全性:客戶端基于cookie機制存儲sessionid,通過設置cookie httponly屬性阻止XSS竊 取sessionid,通過設置secure屬性并結合https阻止傳輸過程中sessionid被竊取
監 管:session信息統計查詢, 應用在線用戶數統計查詢,應用會話管理功能(包括刪除會話、 查看會話屬性數據)
高 階
提供兩種會話共享模式
模式一 集群間會話共享模式,實現同一個應用集群各節點之間的會話共享 ,通過這種模式可以避免因故障導致訪問請求切換服務器時session丟失問題,同時也可以讓用戶請求無差別地平均分派到各個服務器上,達到真正的負載均衡。
模式二 跨域跨應用模式,實現同一域名或者同一根域(不同的子域名)下不同應用之間的會話共享 ,實現他們之間的單點登錄功能(SSO)
第一種模式相對簡單;第二種模式在配置方面比模式一稍微復雜一些,通過模式二可以靈活定義哪些會話數據需要在應用之間進行共享,哪些數據作為應用私有會話數據不對其他應用共享(這個在實際情況下很有用),默認情況下共享應用間的所有會話數據。
實際的應用環境中,模式一和模式二經常組合一起使用,每個應用本身采用集群部署模式(開啟集群間會話共享模式),同時利用跨域跨應用模式實現不同應用間的單點登錄功能(前提是這些應用必須使用同一個域名或者都擁有相同的根域名)。
bboss會話共享架構
bboss 會話共享源碼github托管地址(其中的bboss-security,bboss-security-web兩個eclipse工程包含了會話共享模塊及監控模塊核心代碼,在應用中集成和使用session共享框架請參考會話共享使用集成方法):
https://github.com/bbossgroups/bbossgroups-3.5
會話共享使用集成方法,參考文檔:會話共享demo使用指南
培訓教程:bboss會話共享培訓文檔