作為Cas服務器,允許哪些客戶端接入與否是通過配置來定義的。對Cas服務器來說,每一個接入的客戶端與一個Service配置對應;在Cas服務器啟動時加載並注冊上這些Service,與之對應的客戶端才能接入。否則將出現
一、假設Cas服務器為HTTPS類型
假設我們的Cas服務器運行在8443端口,以HTTPS協議對外提供服務(《Cas 服務器 下載、編譯及部署》中的cas服務器配置)。
1.1 Cas客戶端類型為HTTP應用時的配置
假設我們的Cas客戶端以HTTP協議來對外提供服務,對外提供服務的域名及端口信息為:http://localhost:8081。
注:如果有多個HTTP Cas客戶端,要實現用戶在A Cas客戶端登陸后在B Cas客戶端也可被設別,需要在Cas服務器配置文件中將TGC設為非安全模式:
cas.tgc.secure=false
1.1.1 在Cas服務器上注冊Cas客戶端(Service)
從target>cas>WEB-INF>classes下復制service目錄到src>main>resources下,刪除復制來目錄中的Apereo-10000002.json文件,將HTTPSandIMAPS-10000001.json重命名為TEST-10000003.json,如下圖:
將TEST-10000003.json文件內心修改如下:
{ "@class" : "org.apereo.cas.services.RegexRegisteredService", "serviceId" : "^(http)://localhost:8081.*", "name" : "TEST", "id" : 10000003, "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.", "evaluationOrder" : 10000 }
注:json文件名字由文件內容中的 name-id 組合而成,關於json文件中的各個屬性的涵義及更深入內容可參考https://blog.csdn.net/anumbrella/article/details/82119246
在pom中添加對json文件services注冊支持的依賴
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-json-service-registry</artifactId>
<version>${cas.version}</version>
</dependency>
修改application.properties
#開啟json格式service注冊
cas.serviceRegistry.initFromJson=true
# Json services 配置位置設定
cas.serviceRegistry.json.location=classpath:/services
build run 啟動Cas服務器
1.1.2 在Cas客戶端電腦上導入Cas服務器證書
根據密鑰導出證書
使用之前創建密鑰的KeyStore Explorer(下載地址:https://download.csdn.net/download/popo_popo/10750816),打開之前保存的密鑰庫文件。
證書導入
使用keytool進行證書導入工作,證書導入完成后用Cas客戶端訪問成功!
登陸成功后返回受保護的地址
注:如果Cas客戶端不導入證書,Cas客戶端程序將會出現證書異常而結束執行。關於Cas客戶端的內容將放在后續文章之中。
1.2 Cas客戶端類型為HTTPS應用時的配置
請關注后續文章
二、假設Cas服務器為HTTP類型
假設我們的Cas服務器運行在8080端口,以HTTP協議對外提供服務(《Cas 服務器 使用HTTP協議對外服務》中的cas服務器配置)。
2.1 Cas客戶端類型為HTTP應用時的配置
該配置與1.1.1中的配置完全相同,因為不使用HTTPS,所以不用導入證書操作。