SpringBoot2.3整合CAS5.3实现单点登录

本文详细介绍了CAS(Central Authentication Service)中央认证服务的搭建过程,包括CASServer的环境配置、密钥库制作、数据库登录信息配置,以及CASClient的创建、依赖引入和配置。通过实例展示了如何实现基于HTTPS的单点登录功能,涉及Spring Boot、Maven、Tomcat、MySQL等技术。

1. 概述

CAS(Central Authentication Service)中央认证服务,一种独立开放指令协议,CAS是耶鲁大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方法。
特点如下:
开源的企业级单点登录解决方案

  • CAS Server为需要独立部署的Web应用
  • CAS Client支持非常多的客户端(单点登录系统中各个Web应用)
  • CAS属于Apache2.0许可证,允许代码修改,再发布

CAS主要包括两部分,CAS Server和CAS Client,CAS Server需要独立部署,主要负责对用户的认证工作,CAS Client负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server
术语
TGT(Ticket Granting Ticket):是用户登录后生成的票根,包含用户的认证身份,有效期等
TGC(Ticket Granted Cookie):是存储在Cookie中的一段数据,类似于会话ID,用户与CAS Server进行交互时,帮助用户找到对应的TGT
ST(Service Ticket):是CAS Server使用TGT签发的一张一次性票据,CAS Client使用ST与CAS Server进行交互,以获取用户的验证状态

2. 搭建CAS Server

2.1. 环境依赖

JDK1.8
Maven3.6.3
Tomcat9.0

2.2. 导入CAS Server项目

GitHub地址下载5.3版本的CAS代码,这是因为5.3版本是使用maven构建的,将下载的项目导入idea中,待下载完所有依赖后,在项目目录结构上会出现overlays目录
casoverlasys

2.3. 制作本地密钥库

由于CAS Server默认使用HTTPS进行访问,要求我们提供一个密钥库,可以使用Java自带的密钥和证书管理工具keytool制作本地密钥库,在CMD命令提示符中输入以下命令keytool -genkey -alias casserver -keyalg RSA -keystore E:\File\caskey\casserver.keystore
生成密钥
记住此次输入的密码,后面会用到,名字和姓氏输入的域名后面作为CAS访问的域名
使用export子命令导出证书
keytool -export -trustcacerts -alias casserver -file E:\File\caskey\cas.cer -keystore E:\File\caskey\casserver.keystore
导出证书
使用import子命令导入证书
keytool -import -trustcacerts -alias casserver -file E:\File\caskey\cas.cer -keystore “D:\Java\jdk1.8.0_291\jre\lib\security\cacerts”
导入证书
注意后面的路径为jdk的证书库路径,此处的口令为changeit

2.4. 覆盖CAS Server原配置

在项目下新建目录src/main/resources
将刚才生成的casserver.keystore密钥复制到此目录下,并将目录overlays/org.apereo.cas.cas-server-webapp-tomcat-5.3.16/WEB-INF/classes下的application.properties复制到此目录下,修改配置文件中配置信息

server.ssl.key-store=classpath:casserver.keystore
server.ssl.key-store-password=123456
server.ssl.key-password=123456

在IDEA的Terminal窗口输入mvn spring-boot:run就可以运行此项目,当启动日志中出现READY图标表示启动成功,在浏览器输入地址https://www.xlhj.com:8443/cas,当出现登录界面表示程序成功运行,默认登录名和密码为casuser/Mellon
READY

2.5. 登录信息配置进数据库

首先在pom.xml文件中添加如下依赖

<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-jdbc</artifactId>
    <version>${cas.version}</version>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值