更新時間:2020-11-16 15:52:06 來源:動力節點 瀏覽1973次
Spring Session是Spring的項目之一,Spring Session把servlet容器實現的httpSession替換為spring-session,專注于解決session管理問題。Spring Session提供了集群Session(Clustered Sessions)功能,默認采用外置的Redis來存儲Session數據,以此來解決Session共享的問題。
spring-session提供對用戶session管理的一系列api和實現。提供了很多可擴展、透明的封裝方式用于管理httpSession/WebSocket的處理。
支持功能
1)輕易把session存儲到第三方存儲容器,框架提供了redis、jvm的map、mongo、gemfire、hazelcast、jdbc等多種存儲session的容器的方式。這樣可以獨立于應用服務器的方式提供高質量的集群。
2)同一個瀏覽器同一個網站,支持多個session問題。從而能夠很容易地構建更加豐富的終端用戶體驗。
3)Restful API,不依賴于cookie。可通過header來傳遞jessionID。控制session id如何在客戶端和服務器之間進行交換,這樣的話就能很容易地編寫Restful API,因為它可以從HTTP頭信息中獲取session id,而不必再依賴于cookie。
4)WebSocket和spring-session結合,同步生命周期管理。當用戶使用WebSocket發送請求的時候,能夠保持HttpSession處于活躍狀態。
5)在非Web請求的處理代碼中,能夠訪問session數據,比如在JMS消息的處理代碼中。
需要說明的很重要的一點就是,Spring Session的核心項目并不依賴于Spring框架,所以,我們甚至能夠將其應用于不使用Spring框架的項目中。Spring Session提供了一種獨立于應用服務器的方案,這種方案能夠在Servlet規范之內配置可插拔的session數據存儲,不依賴于任何應用服務器的特定API。這就意味著Spring Session能夠用于實現了servlet規范的所有應用服務器之中(Tomcat、Jetty、WebSphere、WebLogic、JBoss等),它能夠非常便利地在所有應用服務器中以完全相同的方式進行配置。我們還可以選擇任意最適應需求的外部session數據存儲。這使得Spring Session成為一個很理想的遷移工具,幫助我們將傳統的JavaEE應用轉移到云中,使其成為滿足如下:
每個用戶有多個賬號
假設我們在example.com上運行面向公眾的Web應用,在這個應用中有些用戶會創建多個賬號。例如,用戶Jeff Lebowski可能會有兩個賬戶thedude example.com和lebowski example.com。和其他Java Web應用一樣,我們會使用HttpSession來跟蹤應用的狀態,如當前登錄的用戶。所以,當用戶希望從thedude example.com切換到lebowski example.com時,他必須要首先退出,然后再重新登錄回來。
借助Spring Session,為每個用戶配置多個HTTP session會非常容易,這樣用戶在thedude example.com和lebowski example.com之間切換的時候,就不需要退出和重新登錄了。
多級別的安全預覽
假設我們正在構建的Web應用有一個復雜、自定義的權限功能,其中應用的UI會基于用戶所授予的角色和權限實現自適應。
例如,假設應用有四個安全級別:public、confidential、secret和top secret。當用戶登錄應用之后,系統會判斷用戶所具有的最高安全級別并且只會顯示該級別和該級別之下的數據。所以,具有public權限的用戶只能看到public級別的文檔,具有secret權限的用戶能夠看到public、confidential和secret級別的文檔,諸如此類。為了保證用戶界面更加友好,應用程序應該允許用戶預覽在較低的安全級別條件下頁面是什么樣子的。例如,top secret權限的用戶能夠將應用從top secret模式切換到secret模式,這樣就能站在具有secret權限用戶的視角上,查看應用是什么樣子的。
典型的Web應用會將當前用戶的標識及其角色保存在HTTP session中,但因為在Web應用中,每個登錄的用戶只能有一個session,因此除了用戶退出并重新登錄進來,我們并沒有辦法在角色之間進行切換,除非我們為每個用戶自行實現多個session的功能。
借助Spring Session,可以很容易地為每個登錄用戶創建多個session,這些session之間是完全獨立的,因此實現上述的預覽功能是非常容易的。例如,當前用戶以top secret角色進行了登錄,那么應用可以創建一個新的session,這個session的最高安全角色是secret而不是top secret,這樣的話,用戶就可以在secret模式預覽應用了。
動力節點springsession教程視頻,本課程詳細講解Spring session如何解決集群模式/分布式/跨域環境下,實現session的同步共享問題,是構建大規模應用必須要考慮的一個問題。
課程學習目錄
1.SpringSession:Session機制
2.SpringSession:Session機制存放過程
3.SpringSession:集群后丟失Session原因
4.SpringSession:Session共享方案介紹
5.SpringSession:SpringSession介紹
6.SpringSession:Session丟失演示
7.SpringSession:集成SpringSession實現Session共享
8.SpringSession:Redis中的Session數據存放結構
9.SpringSession:SpringSession使用場景
10.SpringSession:同域名下不同項目的Session共享
11.SpringSession:同根據域名不同二級子域名的Session共享
12.SpringSession:單點登錄
13.SpringSession:P2P項目Session共享
14.SpringSession:SpringBoot集成SpringSession
以上就是動力節點java培訓機構的小編針對“Java分布式開發視頻,springsession實戰學習”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習