CAS单点登录服务器的搭建与验证码功能的实现(一)

2023-05-16

CAS单点登录服务器的搭建与验证码功能的实现(版本6.1.X)

  • 前言
    • 环境准备
    • 下载项目并编译
    • 配置https登录

前言

关于SSO单点登录的原理和CAS的认证流程百度上有很多,这里不再啰嗦,直接上具体操作步骤。

环境准备

在搭建CAS服务器之前,先准备需要的环境:

  1. JDK11
  2. Tomcat9
  3. Gradle
  4. Git
  5. 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 {
    // Other CAS dependencies/modules may be listed here...
    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(使用前将#替换为@)

CAS单点登录服务器的搭建与验证码功能的实现(一) 的相关文章

随机推荐