最近项目中涉及到单点登录,涉及到搭建cas服务器,从搭建到跑通过程记录,基于cas cas-overlay-template-5.3版本:
1:下载cas-overlay-template-5.3,下载地址:GitHub - apereo/cas-overlay-template: Apereo CAS WAR Overlay template
版本选择:

下载完成后解压ZIP文件,文件内容如下:

CAS5.3 编译,运行构建脚本,切换至cas5.3 源码地址(E:projectcascas-overlay-template-5.3),执行如下指令:.uild.cmd run
说明:Windows环境运行build.cmd,Linux环境运行build.sh

编译过程中需要下载依赖包,需要等待一段时间
运行构建提示错误信息:Caused by: java.io.FileNotFoundException:etccas hekeystore (系统找不到指定的文件):

错误产生原因:etccas hekeystore是生成的密钥文件的,因为这里不使用加密,所以需要将cas的https协议忽略并将http协议设置为允许
解决办法:支持http协议配置
1)在cas-overlay-template-5.3目录下创建src文件夹

2)在src文件夹中,依次创建main esources目录,最终结果如下
3)拷贝所需文件
进入cas-overlay-template-5.3 argetcasWEB-INFclasses目录将services文件夹与application.properties文件复制到上一步的cas-overlay-template-5.3srcmain esources文件中,如下截图:
4)修改复制后的application.properties文件
注释ssl 协议相关配置:

文件最末尾加入以下2个配置项,如下图
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
修改servicesHTTPSandIMAPS-10000001.json

增加http协议配置

再次执行构建脚本
.uild.cmd run
CAS验证
浏览器访问CAS
打开http://localhost:8080/cas-server
右边的两个提示框,黄色代表cas server没有使用密钥加密,蓝色提示当前登录账户是静态验证,不影响测试
测试使用默认用户名密码进行登录验证
输入默认用户名casuser与密码Mellon,点击登录按钮
备注说明:默认用户名与密码存储在cas-overlay-template-5.3srcmain esourcesapplication.properties文件,cas.authn.accept.users=casuser::Mellon


至此,cas 5.3 服务端搭建成功
SSO - CAS-5.3.x服务端一些常规配置(登出操作后跳转制定页面;增加多个用户名密码)
登出操作后跳转制定页面
首先跳转cas登出url时,要加上?service=你的制定的页面,如下:
1.首先跳转cas登出url时,要加上?service=你的制定的页面,如下:
http://localhost:8080/cas/logout?service=https://www.baidu.com/
2.找到cas的配置文件,本人的版本是5.3,配置文件为war包下的此路径:
WEB-INFclassesapplication.properties
找到配置文件之后,在最后一行添加
cas.logout.followServiceRedirects=true
这两步配置完成之后,cas登出时就可以跳转到制定url了。
增加多个用户名密码
1.只需一步,根据上面步骤2的方法找到配置文件,配置文件中找到此这个配置项:
cas.authn.accept.users
默认此配置项为 cas.authn.accept.users = casuser::Mellon
其中casuser为用户名,Mellon:密码。只需要在此配置项后面增加你想添加的用户名密码,用逗号分隔就可以了,如下:
cas.authn.accept.users = casuser::Mellon,shuimuinfo1::shuimuinfo@1,shuimuinfo2::shuimuinfo@2,shuimuinfo3::shuimuinfo@3
样就增加了三个用户,shuimuinfo1,shuimuinfo2,shuimuinfo3,密码分别为:shuimuinfo@1,shuimuinfo@2,shuimuinfo@3