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