1. 程式人生 > >SpringBootSecurity學習(09)網頁版登入配置Session共享

SpringBootSecurity學習(09)網頁版登入配置Session共享

場景

當後臺專案由部署在一臺改為部署在多臺以後,解決session共享問題最常用的辦法就是把session儲存在redis等快取中。關於session和cookie概念這裡就不再贅述了,在springboot-security環境下,把session儲存到redis中共享是非常非常簡單的,除了多了一些配置,幾乎不用改任何程式碼。共享session達到的效果就是,使用者在一臺伺服器上面登入成功後,訪問另外一臺,使用者也是處於登入狀態。下面建立兩個一樣的專案,來配置session共享。

增加依賴

把session儲存在redis中配置共享,需要新增兩個依賴,一是redis,二是spring session:

配置檔案修改

在配置檔案中,需要配置redis的資料來源和session的一些屬性:

關於session的配置,可以根據ide的提示看一下:

可以看到session的儲存不僅可以在redis中,還可以在資料庫或者MongoDB中,不過目前redis是選擇最多的一種方式。

添加註解

最後在啟動類中新增一個註解 @EnableRedisHttpSession :

測試

先開啟一個專案的登入頁面,登入成功,

然後再開啟一個瀏覽器,直接訪問第二個專案的主頁,此時不用登入直接可以訪問:

來看一下session在redis中的儲存:

這樣就實現了session共享!此時把其中一個退出,另一個也會自動退出,redis 中的session資料也會自動刪除。

程式碼地址 : https://gitee.com/blueses/spring-boot-security 091