一圃验、Server端搭建
1.template下載
下載CAS 模板 Overlay Template掉伏,我這里使用 Apereo CAS 5.3.x 版本,JDK需要1.8+
地址:https://github.com/apereo/cas-overlay-template/tree/5.3
解壓下載的zip壓縮包
2.keystore配置
如果不對(duì)keystore進(jìn)行配置澳窑,項(xiàng)目啟動(dòng)將拋出找不到證書文件的異常斧散,無法正常啟動(dòng)。
打開項(xiàng)目目錄build.cmd (Linux 為build.sh)摊聋,可以看到有如下代碼
:gencert
where /q keytool
if ERRORLEVEL 1 (
@echo Java keytool.exe not found in path.
exit /b 1
) else (
if not exist %CAS_DIR% mkdir %CAS_DIR%
@echo on
@echo Generating self-signed SSL cert for %DNAME% in %CAS_DIR%\thekeystore
keytool -genkeypair -alias cas -keyalg RSA -keypass changeit -storepass changeit -keystore %CAS_DIR%\thekeystore -dname %DNAME% -ext SAN=%CERT_SUBJ_ALT_NAMES%
@echo Exporting cert for use in trust store (used by cas clients)
keytool -exportcert -alias cas -storepass changeit -keystore %CAS_DIR%\thekeystore -file %CAS_DIR%\cas.cer
)
@goto:eof
可以看到鸡捐,在template的build工具中已經(jīng)為我們提供了生成keystore的腳本,就不需要再按照大量網(wǎng)上教程去命令行手動(dòng)進(jìn)行創(chuàng)建麻裁。
證書信息可在腳本頂部 DNAME 和 CERT_SUBJ_ALT_NAMES 兩個(gè)變量中進(jìn)行定義:
@if "%DNAME%" == "" set DNAME=CN=cas.example.org,OU=Example,OU=Org,C=US
@if "%CERT_SUBJ_ALT_NAMES%" == "" set CERT_SUBJ_ALT_NAMES=dns:example.org,dns:localhost,dns:%COMPUTERNAME%,ip:127.0.0.1
在項(xiàng)目目錄執(zhí)行代碼:
build.cmd gencert
就生成了證書文件箍镜。
需要注意的是:
(1) 由于配置的項(xiàng)目路徑CAS_DIR是 \etc\cas,在Windows環(huán)境下煎源,會(huì)將證書文件生成到當(dāng)前盤符目錄的對(duì)應(yīng)文件夾下色迂。如項(xiàng)目文件在F盤某個(gè)目錄,那么文件會(huì)生成到F:\etc\cas目錄下手销。
(2) 生成證書的時(shí)候歇僧,會(huì)出現(xiàn)warning:JKS 密鑰庫使用專用格式。建議使用 "keytool -importkeystore -srckeystore \etc\cas\thekeystore -destkeystore \etc\cas\thekeystore -deststoretype pkcs12" 遷移到行業(yè)標(biāo)準(zhǔn)格式 PKCS12锋拖。因?yàn)閮H做演示诈悍,可以不進(jìn)行此操作祸轮。
3.其他配置
修改cas-overlay-template-5.3\etc\cas\config目錄下的cas.properties配置文件。
4.項(xiàng)目運(yùn)行
項(xiàng)目運(yùn)行通常采取 build.cmd run 或者 build.cmd bootrun 命令侥钳。
這里适袜,我們采用調(diào)試命令
build.cmd debug
將默認(rèn)開啟5000調(diào)試端口,方便遠(yuǎn)程調(diào)試慕趴。
命令執(zhí)行后痪蝇,可以看到項(xiàng)目目錄下生產(chǎn)了build及target文件夾。
target\cas\WEB-INF\classes目錄下:
- services 文件夾存放了以正則方式注冊(cè)的json service(RegexRegisteredService)
- application.properties 文件包含項(xiàng)目大量配置冕房,包含默認(rèn)的用戶名密碼信息
項(xiàng)目啟動(dòng)后躏啰,訪問 https://localhost:8443/cas/login
默認(rèn)用戶登錄:
casuser
Mellon