CAS 介绍
CAS(Central Authentication Service)是一个开源的单点登录(SSO)解决方案,旨在为多个应用程序提供统一的身份验证服务。它允许用户在一个地方登录,并在多个应用程序之间共享会话信息,从而简化用户的登录体验和提高安全性。
官网:https://github.com/apereo/cas
CAS 服务的主要特性
- 单点登录(SSO): 用户只需登录一次,即可访问多个应用程序。
- 多种认证方式: 支持用户名/密码、LDAP、数据库、OAuth、SAML 等多种认证方式。
- 可扩展性: 提供丰富的扩展点,可以根据需要定制。
- 安全性: 提供多种安全机制,如双因素认证、票据加密等。
- 开源社区支持: 由 Apereo 基金会维护,拥有活跃的开源社区。
安装环境准备
0、阅读:READMEmld
1、准备Java的JDK,本例使用的是JDK 1.8
CAS 安装
由于本例JDK是1.8,所以CAS使用 5.3 版本,在高的版本需要升级JDK
安装前阅读项目:README.md 文件
1. 下载cas5.3服务端
cas5.3服务端下载:https://github.com/apereo/cas-overlay-template/tree/5.3
cas-overlay-template项目是可覆盖的模板项目,Overlay的意思就是覆盖文件,即如果是配置文件则覆盖相同目录中的文件,如果是类文件则编译后覆盖相同包中的类class文件,如果是新文件则添加到相应的目录中。
2. 使用idea项目,打开
目录如下,使用maven package命令打包,在target目录下得到war包,安装前阅读项目:README.md 文件
3、使用自带脚本生成密钥
此步骤也可以自己手动创建密钥,参考:【Java】使用JDK自带工具生成密钥对 - H__D - 博客园
切换到项目目录,打开命令窗口,脚本文件(windows:build.cmd ;linux:build.sh)
命令:.\build.cmd gencert
在cas的配置目录 /etc/cas中,可以找到对应证书
(可选)根据提示,可以将转换密钥库格式
命令:keytool -importkeystore -srckeystore \etc\cas\thekeystore -destkeystore \etc\cas\thekeystore -deststoretype pkcs12
4、使用自带脚本启动项目
启动命令:.\build.cmd run
开发中,可以使用启动命令:.\build.cmd bootrun
4. 使用浏览器访问
地址:https://localhost:8443/cas/
默认用户可以在 项目目录\target\cas\WEB-INF\classes\application.properties 找到(用户:casuser,密码:Mellon)
cas.authn.accept.users=casuser::Mellon
证书情况
5. 修改配置
在项目中新建目录 src/main/resources, 从target/war/work/cas-server-webapp-tomcat的WEB-INF\classes目录下拷贝application.properties,log4j2.xml文件
或者也可以解压cas.war,在其中找到文件
在application.properties中 修改默认用户 cas.authn.accept.users=admin::123456
CAS启动
情况一:无证书启动
1. 修改配置
在application.properties中,将下面4个默认配置注释掉#server.ssl.key-store=file:/etc/cas/thekeystore #server.ssl.key-store-password=changeit #server.ssl.key-password=changeit
#server.tomcat.protocol-header-https-value=https
2. 打包启动
使用脚本启动,启动命令:.\build.cmd run
浏览器访问地址:http://localhost:8443/cas/

使用对应的账号密码即可登录
情况二:tomcat启动
准备tomcat,本例使用的是tomcat 9 参考:【Linux】Tomcat安装及一个服务器配置多个Tomcat - H__D - 博客园
有证书的情况
将证书放到配置目录 tomcat目录/conf 中,
配置https证书

<!-- RSA 格式证书 --> <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000" > <SSLHostConfig> <Certificate certificateKeystoreFile="conf\thekeystore.old" certificateKeystorePassword="changeit" type="RSA" /> </SSLHostConfig> </Connector> --> <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000" > <SSLHostConfig> <Certificate certificateKeystoreFile="E:\etc\cas\thekeystore.old" certificateKeystorePassword="changeit" type="RSA" /> </SSLHostConfig> </Connector> --> <!-- PKCS12 格式证书 --> <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf\thekeystore" certificateKeystorePassword="changeit"/> </SSLHostConfig> </Connector> <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="E:\etc\cas\thekeystore" certificateKeystorePassword="changeit"/> </SSLHostConfig> </Connector> -->
正常启动tomcat即可,使用 https://localhost:8443/cas 访问
证书的情况
正常启动tomcat即可,使用 http://localhost:8080/cas 访问
项目自带脚本build.cmd
linux系统使用脚本 build.sh
命令帮助:build.cmd help
运行项目命令:build.cmd run
README.md 解释

下面是对 CAS Overlay Template 的解释。这是一个用于搭建和运行最新版本 CAS 服务器的通用 WAR overlay 模板。这个模板可以作为本地 CAS WAR overlay 的起点。 ### 版本 ```xml <cas.version>5.3.x</cas.version> ``` - 这个模板使用 CAS 版本 5.3.x。 ### 要求 - 需要 JDK 1.8 及以上版本。 ### 配置 - `etc` 目录包含需要复制到 `/etc/cas/config` 的配置文件和目录。 ### 构建 - 查看可用的构建命令: ```bash ./build.sh help ``` - 打包最终的 web 应用程序: ```bash ./build.sh package ``` - 更新 `SNAPSHOT` 版本: ```bash ./build.sh package -U ``` ### 部署 - 创建一个名为 `thekeystore` 的密钥库文件在 `/etc/cas` 目录下。使用密码 `changeit` 作为密钥库和密钥/证书条目的密码。 - 确保密钥库中包含服务器的密钥和证书。 成功部署后,通过以下方法可以访问 CAS: - `http://cas.server.name:8080/cas` - `https://cas.server.name:8443/cas` ### 可执行 WAR - 作为可执行 WAR 运行 CAS web 应用程序: ```bash ./build.sh run ``` ### Spring Boot - 通过 Spring Boot 作为可执行 WAR 运行 CAS web 应用程序。这在开发和测试期间非常有用: ```bash ./build.sh bootrun ``` ### 警告 - 使用这种部署方法时要小心。`bootRun` 并不是为已经可执行的 WAR 工件设计的,比如 CAS 服务器 web 应用程序。这种模式 **仅在没有其他依赖项** 并且 `cas-server-webapp` 是唯一存在的模块时有效。更多信息请参见 [这个问题](https://github.com/spring-projects/spring-boot/issues/8320)。 ### Spring Boot 应用服务器选择 - 在 `pom.xml` 中有一个 `app.server` 属性,可以用来选择 Spring Boot 应用服务器。 - 默认值是 `-tomcat`,但也支持 `-jetty` 和 `-undertow`。 - 如果你想将 CAS 部署到你选择的外部应用服务器,可以将其设置为空值。 ```xml <app.server>-tomcat</app.server> ``` ### Windows 构建 - 如果你在 Windows 上构建,请尝试使用 `build.cmd` 而不是 `build.sh`。参数类似,但使用方法如下: ```bash build.cmd help ``` ### 外部部署 - 将生成的 `target/cas.war` 部署到你选择的 servlet 容器中。 ### 命令行 Shell - 调用 CAS 命令行 Shell。要查看命令列表,可以不使用任何参数或使用 `-h`。要进入交互式 shell,请使用 `-sh`。 ```bash ./build.sh cli ``` 这个模板提供了一个快速入门的方式,使你能够快速搭建和运行 CAS 服务器,并根据需要进行定制和配置。如果你有其他问题或需要进一步的帮助,请随时告诉我!
参考:https://blog.csdn.net/wangwenke2003/article/details/80348998
参考:https://www.cnblogs.com/wuyongyin/p/16034502.html
参考:https://www.jb51.net/program/315428xsz.htm
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 数据并发安全校验处理工具类