業(yè)務(wù)需求
隨著公司內(nèi)網(wǎng)項(xiàng)目的增多,每個(gè)系統(tǒng)都一套賬號(hào)密碼,這樣維護(hù)起來(lái)很不方便,所以決定搭建一套內(nèi)部的SSO,經(jīng)過(guò)多方便比較,選擇CAS做統(tǒng)一登錄
開(kāi)始搭建
cas 項(xiàng)目比較大,配置必將復(fù)雜,但是CAS官方提供了一套模板項(xiàng)目CAS-Overlay-Template,先不管其他下載該項(xiàng)目,但是請(qǐng)注意選擇版本
注意: CAS 6.0版本,用Java11,而且使用的gradle,而不是maven,而我本地還是使用的jdk8,所以選擇了 5.3 版本;
*1. 查看配置文件/etc/cas/config *
#cas 服務(wù)地址 (修改為你的)
cas.server.name: https://cas.example.com:8443
# path 訪問(wèn)路徑,默認(rèn)帶上 /cas
cas.server.prefix: https://cas.example.com:8443/cas
cas.adminPagesSecurity.ip=127\.0\.0\.1
#log 路徑
logging.config: file:/etc/cas/config/log4j2.xml
#開(kāi)啟http訪問(wèn),并指定端口為80
cas.server.http.enabled=true
cas.server.http.port=80
2. 執(zhí)行啟動(dòng)
CAS-Overlay-Template 提供了啟動(dòng)腳本,window下 build.cmd,linux 有 build.sh,我是在linux 下進(jìn)行操作的,執(zhí)行 build.cmd ,常用的如下
build.cmd copy #復(fù)制配置到系統(tǒng)目錄
build.cmd gencert ## 生成https 證書(shū)
build.cmd clean #清除打包信息
build.cmd package #打包
build.cmd run 打包鏡像 #運(yùn)行
build.cmd debug # debug測(cè)試
3.開(kāi)始啟動(dòng)
build.cmd copy
build.cmd gencert 生成證書(shū)
build.cmd run
如果沒(méi)啥問(wèn)題,這個(gè)時(shí)候應(yīng)該啟動(dòng)起來(lái)了 訪問(wèn) http://域名:80/cas, https://域名:8443/cas,登錄使用
target/cas/WEB-INF/classes/application.properties 文件下的 cas.authn.accept.users 默認(rèn)用戶(hù)名密碼登錄,這樣簡(jiǎn)單的部分就完成了
經(jīng)過(guò)幾分鐘的搭建 我們的成功啟動(dòng)了cas服務(wù),下面我們?cè)斍榈闹v下配置
CAS-Overlay-Template 幫我們把多數(shù)的配置已經(jīng)做了,下面我們要修改這些配置
-
在當(dāng)前項(xiàng)目創(chuàng)建 標(biāo)準(zhǔn)的java文件目錄結(jié)構(gòu)
image.png 將 target/cas/WEB-INF/classes/application.properties copy 到resouces目錄下
###修改項(xiàng)目目錄
server.context-path=/cas
### 端口號(hào)
server.port=8443
###證書(shū)地址,這里我用了自己的證書(shū),為了方便,我把自己的證書(shū)也放在了classpath路徑下
server.ssl.key-store=classpath:/thekeystore
###證書(shū)密碼
server.ssl.key-store-password=******
server.ssl.key-password=******
重新啟動(dòng)項(xiàng)目 build.cmd
