前提: 安装java, 参考《java源码安装》
一、 使用tomcat+cas.war包形式安装(弃用)
-
解压tomcat
tar zxf apache-tomcat-9.0.56.tar.gz
#解压CAS War包到 tomcat 部署目录下
unzip -q cas-server-webapp-tomcat-5.3.16.war -d apache-tomcat-9.0.56/webapps/cas
#启动tomcat
cd apache-tomcat-9.0.56/bin
./startup.sh -
查看日志
cd …
tail -f logs/catalina.out
出现Ready后,Ctrl+C停止日志输出控制台,访问服务器IP:8080,查看tomcat是否启动成功
访问 Cas Server,服务器IP:8080/cas
casuser是用户名,Mellon是密码
此时网页提示http访问不安全,可以设置允许http访问或者直接将服务器设置为https访问
3.1. 修改允许http访问
vim /opt/apache-tomcat-9.0.56/webapps/cas/WEB-INF/classes/services/HTTPSandIMAPS-10000001.json
将serviceID选项中增加http
再vim /opt/apache-tomcat-9.0.56/webapps/cas/WEB-INF/classes/application.properties文件
最后添加如下两行:
cas.tgc.secure=false #取消票根对应的Cookie的Secure配置,否则非https无法完成单点登录(但是能达到每个应用都需要登录的目的)
cas.serviceRegistry.initFromJson=true #使用services目录下的json配置初始化serviceRegistry
3.2 设置为https访问模式
(1) 生成证书
keytool -genkey -alias caskeystore -keypass 123456 -keyalg RSA -keystore thekeystore
输入密钥库口令:123456
您的名字与姓氏时什么:sso.anumbrella.net
之后出来国家时cn外,其他都是anumbrella
结果生成了thekeystore
(2) 导出数字证书
keytool -export -alias caskeystore -keystore thekeystore -rfc -file cas.crt
输入密钥库口令:123456
结果生成cas.crt
(3) 将数字证书导入jdk下的jre里
sudo keytool -import -alias caskeystore -keystore $JAVA_HOME/jre/lib/security/cacerts -file cas.crt -trustcacerts -storepass changeit
(4) 修改server.xml
编辑Tomcat目录Conf下的server.xml文件,
将8443的端口配置文件打开,配置如下(添加前面刚刚生成的keystore的地址和密匙):
最终访问地址:
https://192.168.1.177:8443/cas/login
https://sso.anumbrella.net:8443/cas/login
二、使用template包形式(当前采用此方案)
参考链接:https://blog.csdn.net/Anumbrella/article/details/81045885
-
安装maven
-
解压缩
unzip cas-overlay-template-5.3.zip
cd cas-overlay-template-5.3 -
在pom.xml中的标签内添加阿里源
<repository>
<id>maven-ali</id>
<url>http://maven.aliyun.com/nexus/content/groups/public//</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
-
执行mvn clean package,生成target目录
-
生成src目录,复制配置文件
cd cas-overlay-template-5.3
mkdir -p src/main/resources/services
cp target/cas/WEB-INF/classes/application.properties src/main/resources/
cp target/cas/WEB-INF/classes/services/* src/main/resources/services/ -
配置application.properties文件,来支持http方式启动
vim src/main/resources/application.properties
以下三行注释:
#server.ssl.key-store=file:/etc/cas/thekeystore
#server.ssl.key-store-password=changeit
#server.ssl.key-password=changeit
末尾增加
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
ticket的有效使用次数,默认为1
cas.ticket.st.numberOfUses=10
ticket的有效时间,默认1s
cas.ticket.st.timeToKillInSeconds=60
-
配置HTTPSandIMAPS-10000001.json文件,来支持http方式启动
vim src/main/resources/services/HTTPSandIMAPS-10000001.json
将"serviceId" : “^(https|imaps)😕/.“,一行中增加http,改为"serviceId” : "^(https|imaps|http)😕/.”, -
修改pom.xml文件,为了支持rest认证方式
在Additional dependencies may be placed here注释下增加
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-rest</artifactId>
<version>${cas.version}</version>
</dependency>
- 启动程序
./build.sh package
./build.sh run
三、服务验证:
- 访问http://192.168.1.177:8443/cas/login
输入默认账号密码 casuser::Mellon登录成功 - 访问带service参数的登录地址 http://192.168.1.177:8443/cas/login?service=http%3A%2F%2F192.168.1.191%3A8012%2Flogin
登录成功并成功跳转到http://192.168.1.191:8012/login并携带ticket参数
例如 http://192.168.1.191:8012/login?ticket=ST-1-7RQaVICupg1kP3kEP6aoi9GITmolocalhost - 验证ticket的有效性质
发起get请求 http://192.168.1.177:8443/cas/serviceValidate?service=http%3A%2F%2F192.168.1.191%3A8012%2Flogin&ticket=ST-23-HwvBA0DNBt86Tezfdaxji-QqgD8localhost