1. 程式人生 > >Tomcat叢集環境下實現單點登入

Tomcat叢集環境下實現單點登入

一、問題分析
在tomcat叢集環境下,session是不能在tomcat之間共享的,所以會導致如下問題,如圖所示:

在這裡插入圖片描述

通一個瀏覽器傳送多次請求,請求可能會被nginx轉發到不同的tomcat上,因為session不能共享,可能會導致登入成功後,發起其他的請求,返回給使用者的依舊是讓其進行登入操作,所以需要實現登入一次後,登入資訊在多個tomcat之間共享,就是所謂的單點登入。

二、解決辦法
單點登入有很多解決辦法,這裡提供的解決思路是,在tomcat叢集中增加一個共享的redis資料庫,將使用者的登入資訊存放在redis中,而不是各自的session中,達到使用者登入資訊在多個tomcat之間共享的目的,從而實現單點登入。如下圖:
在這裡插入圖片描述

三、程式碼實現

https://github.com/shaoxiaowen/Single_SignOn_demo