Java框架技術_CAS(中央認證服務)(一)

一、認識CAS

首先,我們先來認識一下CAS這個技術。

CAS,英文全稱 Central Authentication Service 翻譯過來就是中央認證服務,這個技術是由國外一所知名的大學,耶魯大學所開源出來的一個項目,而且這個項目可謂是企業級的項目,很牛逼。

CAS這個技術是用來幹啥的,說起來很簡單,就是爲 Web 應用系統提供一種可靠的單點登錄方法。說到這裏,我們還要說一下單點登錄

單點登錄

單點登錄(SSO),英文全稱 Single Sign On,英譯漢就是單點登錄。

其實這四個字,主要是理解單點是什麼意思。知道了單點的意思,是吧,就全知道了。

我們先來說一下,在哪裏你用過,或者是見到過。

淘寶、天貓大家都不陌生吧,他們是阿里巴巴旗下的產品,我相信作爲22世紀的我們肯定都使用過。但是我們現在做一個這樣的操作,用一個瀏覽器同時打開天貓和淘寶,然後都不要登錄,我知道有手快的人,直接就登錄了,登錄了的話,就先退出。然後刷新以下網站,確定已經退出之後,你做這麼一個操作,先登錄淘寶,然後刷新網站,確定登錄之後,再進入天貓,不要登錄,直接刷新,你會發現,誒,沒有登錄的天貓居然也登錄上了。

這個就是我們要說的單點登錄。

是的,沒有看錯,這個圖標就是CAS的官網圖標啊,很漂亮

官網地址:https://www.apereo.org/projects/cas/

網站打開有點慢,是因爲是服務器主機在國外,耐心等等

CAS具體的一些介紹,大家可以直接百度百科,相對比較權威,url:百度百科_CAS

二、CAS原理

話不多說,先上圖,這個圖片也是從百度百科中搞下來的

很多人看到這個一臉矇蔽,不知道從哪裏看起,其實慢慢理解,總能會看的。

我們從user·s browser 這裏開始看,首先翻譯一下,這個意思是用戶瀏覽器,用戶打開瀏覽器之後呢,會訪問一些網站,忽然看到了你的網站,然後進來,正要準備進入你的網站的時候,我們的講述開始了。

首先,用戶請求你的服務器,也就是user·s browser 給你的服務器,也就是Your PHP Application 發送了一個請求,請求內容呢,就是想看一個什麼什麼圖片吧,比如說哈士奇的圖片,但是你的服務器中配置了CAS的過濾器,然後用戶請求直接被重定向到了CAS Server

CAS Server拿到請求一看,不行,沒有登錄,告訴用戶要登錄,這時候,用戶的瀏覽器窗口就打開了登錄窗口,然後呢,用戶輸入賬號、密碼、驗證碼,刷刷刷輸入完,點擊登錄,這時候,請求直接到了CAS Server這裏,CAS Server拿到了用戶輸入的賬號密碼啥的,開始去匹配,一看OK,沒錯,CAS Server就創建一個票,也就是ticket返回給用戶,存入瀏覽器中。截止到這裏,用戶從點擊登錄一直到CAS Server返回ticket ,用戶是感覺不到的。

用戶這裏拿到這個票之後,就繼續去訪問資源,也就是去看哈士奇的圖片,這時候的請求(這裏的請求是帶着剛剛返回的內個票的),是進入到了你的服務器中,你的服務器因爲過濾器,導致這次的這個請求還得去CAS Server,CAS Server拿到票一看,一驗證,發現沒錯,是它給的票,而且還有效,CAS Server就直接放行,然後用戶就看到了哈士奇。

直到看到了哈士奇,用戶纔有感覺,剛剛登錄成功了,而且看到了哈士奇,但是,中間這麼一大串步驟,用戶根本是不知道的。

 

ps:大家好好看幾遍這個流程,好好理解,理順了,別搞得懂一點不懂一點的。

然後我們繼續說,好比你還有一個網站,也是用的同一個CAS 服務器,那麼,用戶在訪問你另外的一個網站的時候,直接就帶上剛剛的票子去訪問你的網站。

之後的流程類似,過濾器過濾,CAS 拿到票,可以,有效,然後直接放行。

 

這個就是CAS 的整個服務流程,如果那裏錯誤,直接指出,我來修改。

三、搭建本地CAS

1.jdk版本 1.8 + (一定要1.8+,別弄個1.7來搞事情,沒有直接orcale下載java 14 版本,或者看我以前的博客弄個1.8,直接找我要也行)

2.tomcat 8+(同上,別弄個低版本的過來,直接告訴你,運行不了)

3. CAS Server的war包(下載地址:https://download.csdn.net/download/weixin_45908370/12259136

(這個資源我是耗了一下午從官網上搞下來,費勁死了,主要下載慢,所以我就弄成5C幣收費資源了,你也可以自己去找只要版本對,你能找到,那就用你自己的,不強求)

我這個裏面已經把maven工程 和弄好的war包都給放進去了,下面的下載啊啥的,你就能免去等待的痛苦了。

 

CAS GitHub地址:https://github.com/apereo/cas-overlay-template

進入到這個github之後,可以看到有很多版本,我們爲啥選用5.3版本,是因爲這個是6.x一下最高的一個可以用maven打包的版本

當然,你也可以下載6.x的版本,只要你時間夠,網速好。

我這裏已經下載好了,我就不再去下載了,直接構建就好了,這裏構建有兩種方式。

方式一:eclipse構建

打開eclipse,然後導入剛剛的項目

然後導入之後,maven會自己去下載war包,但是就是有點慢。。

方式二:

cmd進入到剛剛下載的cas包中,輸入命令mvn clean package(前提你的電腦安裝了Maven,並且配置了Maven)

然後就是等待了。。

 

大概好一會,OK了,然後打開目錄

這個地方,這個就是我們要用到的CAS的war包。

接下來,把這個包仍在tomcat中

扔到這裏,然後進入tomcat bin目錄,運行一下

咚咚咚咚

好了,啓動之後,我們瀏覽器訪問一下這個項目

http://127.0.0.1:8080/cas/login

這個就是CAS 5.3版本的界面

然後我們試一下登錄

賬號:casuser

密碼:Mellon

截止到這裏,OK,項目搭建成功!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章