CAS单点登录服务器的搭建与验证码功能的实现(版本6.1.X)
前言
关于SSO单点登录的原理和CAS的认证流程百度上有很多,这里不再啰嗦,直接上具体操作步骤。
环境准备
在搭建CAS服务器之前,先准备需要的环境:
- JDK11
- Tomcat9
- Gradle
- Git
- Maven
目前使用的CAS版本为6.1.X
下载项目并编译
这里官方推荐我们使用WAR Overlay method的方法进行构建。
git clone https://github.com/apereo/cas-overlay-template.git 将项目克隆下载
然后进入到项目目录下,执行命令gradlew clean build 第一次编译时间会比较长
使用 gradlew explodeWar 命令 可以解压生产cas-resources文件夹。
将其内容复制到src/main/resources下,application.properties文件里的内容是该项目的相关配置。
可以重新打包放在tomcat下运行,也可以直接使用IDE启动。
我这里直接选择使用IDEA启动。
通过http://localhost:8080/cas/login访问后可以看到如下页面 使用账号casuser 和密码 Mellon登录
配置https登录
我们将 /etc/cas/services目录也拷贝到 src\main\resources\下,简单做一下修改即可
{
"@class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(http|https|imaps)://.*",
"name": "HTTPS and IMAPS",
"id": 10000001,
"description": "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
"evaluationOrder": 10000
}
在原有的https和imaps基础上增加了http应用,我们还需要再application.properties中配置注册文件的位置
cas.serviceRegistry.initFromJson=true
cas.serviceRegistry.json.location=classpath:/services
并且需要在build.gradle中加入依赖包
dependencies {
compile "org.apereo.cas:cas-server-support-json-service-registry:${casServerVersion}"
}
位置如图
根据以下步骤生成证书并导入JDK中
1. keytool -genkeypair -alias cas -keyalg RSA -keypass changeit -storepass changeit -keystore D:/cas/thekeystore
cas是整数名称,changeit是后面导入JDK时需要使用的密码,D:/cas/thekeystore 是生成目录
之后按照以下输入
名字与姓氏很重要,是我们之后要访问的域名。同时我们在hosts中增加映射。
3. keytool -exportcert -alias cas -storepass changeit -keystore D:/cas/thekeystore -file D:/cas/cas.cer
4. keytool -import -keystore "D:/zulu11.39.15-ca-fx-jdk11.0.7-win_x64/lib/security/cacerts" -file D:/cas/cas.cer -alias cas
最后 ,如图所示,证书添加完成
修改tomcat的配置文件server.xml
删除
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
添加
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="D:/cas/thekeystore"
type="RSA" certificateKeystoreType="JKS" certificateKeystorePassword="changeit"/>
</SSLHostConfig>
</Connector>
重启服务后访问地址https://localhost:8443/cas/login
至此,简单的CAS服务器已搭建完成。
关于自定义数据源和验证码功能的实现推荐去看Anumbrella的文章。写的很详细。
传送门:
多种认证方式
自定义验证码以及自定义错误信息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)