CAS Server
安装方式:WAR Overlay Initializr
通过本地命令生成WAR Overlay Template
进行覆盖安装。
采用版本:6.4.3
步骤
生成模板项目
使用免费CAS初始化服务器Heroku。
在bash profile(.bash_profile 或 .profile)添加:
function getcas(){
curl https://casinit.herokuapp.com/starter.tgz \
-d type=cas-overlay -d baseDir=overlay -d dependencies="$1" | tar -xzvf -
ls
}
执行命令 getcas
生成overlay模板项目。
修改登录首页
src/main/resources
下创建 templates
。cas overlay 可通过添加修改src下同目录同名文件覆盖对构建目录下的文件。
# 构建,输出地址 `build目录`,包地址 `build/libs/cas.war`
./gradlew clean build
# 解压war包,查看构建的war包内容
./gradlew unzip
复制文件 build/cas-resources/template/layout.html
到 src/main/resources/template
目录下。并注释掉 header & footer。
修改默认账号密码
账号密码默认配置地址 build/cas-resources/application.properties
。
cas.authn.accept.users=casuser::Mellon
在 src/main/resources/application.yml
配置:
cas:
authn:
accept:
users: wfbi::wfbi
以上会覆盖默认配置。
callback地址支持http
build.gradle
添加依赖:
dependencies {
implementation "org.apereo.cas:cas-server-core-api-configuration-model"
implementation "org.apereo.cas:cas-server-webapp-init"
implementation "org.apereo.cas:cas-server-support-json-service-registry"
implementation "org.apereo.cas:cas-server-support-oauth-webflow"
}
复制文件 build/cas-resources/services/HTTPSandIMAPS-10000001.json
到 src/main/resources/services
目录下。并添加http支持。
{
"@class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(https|imaps|http)://.*",
"name": "cas-bootclient",
"id": 1,
"description": "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
"evaluationOrder": 10000
}
同时将文件名修改为:cas-bootclient-1.json
,即 name + id 的形式。serviceId为匹配的路径,符合匹配规则的适用该json配置。
application.yml
添加如下配置:
cas:
tgc:
secure: false
service-registry:
json:
location: classpath:/services
core:
init-from-json: true
注意以上是 cas 6.4.3 的配置方式,不同版本可能不同。
配置ssl
执行 ./gradlew createKeystore
生产对应密钥库及证书,目录 /etc/cas。
将密钥库文件 thekeystore
复制到 src/main/resources
下。并在application.yml
添加如下配置:
server:
ssl:
key-store: classpath:thekeystore
客户端需要导入 /etc/cas
下的 cas.crt
证书。
例如 java 客户端:
keytool -import -alias cas -file cas.crt \
-keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
运行
本地运行:./gradlew run
或
./gradlew build
java -jar build/libs/cas.war
CAS Client
导入证书
keytool -import -alias cas -file cas.crt \
-keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
添加依赖
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.3.0-GA</version>
</dependency>
或
<dependency>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-support-springboot</artifactId>
<version>3.6.2</version>
</dependency>
添加注解
启动类添加:@EnableCasClient
添加配置
application.yml
:
#Address of CAS server
cas.server-url-prefix=https://localhost:8443/cas
#Login address of CAS server
cas.server-login-url=https://localhost:8443/cas/login
#Client access address
cas.client-host-url=http://localhost:8080
# ticket validator Cas30ProxyReceivingTicketValidationFilter
cas.validation-type=CAS3