apereo CAS Server 6.2.x 和 6.4.x 的部署

2023-05-16

代码地址,分别下载6.2和6.4两个版本
https://github.com/apereo/cas-overlay-template

版本地址:
https://github.com/apereo/cas-overlay-template/tree/6.2 -- 6.2版本
https://github.com/apereo/cas-overlay-template/tree/6.4 -- 6.4版本

JAVA版本:11

两者的部署还是有些区别的

6.4的部署参考了6.2的部署,6.2的部署可以参考:

记录CAS6.1X Server 部署加Mysql数据源整合详细_嘻哈的博客-CSDN博客

使用cas-overlay-template 6.2服务部署到整合cas-client_爱学习的老王的博客-CSDN博客

6.2的构建步骤:

  1. 第一次先构建出war。
  2. 从构建出来的war解压出源码,目录为:build/cas-resources。
  3. 将源码build/cas-resources复制到src/main目录下,改名为resources。
  4. 把etc/cas/thekeystore文件拷贝到resources目录下。(SSL方式启动需要一个证书)
  5. 修改resources下的application.properties 配置文件。
  6. 将修改好的源码重新打包,运行。

进入下载好的代码目录:(6.2版本的构建命令都在这个目录中执行)
> cd ./cas-overlay-template-6.2

第一次构建出war:

> gradlew.bat clean build # linux 换为 ./gradlew clean build

构建完成后,执行命令进行解压

> gradlew.bat explodeWar

复制build/cas-resources => src/main/resources
复制etc/cas/thekeystore => src/main/resources/thekeystore

修改文件:src/main/resources/application.properties

修改如下配置:
server.ssl.key-store=file:/etc/cas/thekeystore
改为
server.ssl.key-store=classpath:thekeystore

再次构建项目

> gradlew.bat build

解压(这步可能是不必要的)

> gradlew.bat explodeWar

启动项目

> gradlew.bat run

启动完成后浏览器中打开 https://localhost:8443/cas/login
在登录页面输入默认的静态用户名:casuser 密码:Mellon

6.2中引入MySQL数据库,支持帐号登录

步骤:

  1. 添加MySQL依赖。
  2. application.properties配置文件加入数据库连接配置。
  3. 数据库中建表,并添加帐号记录。
  4. 构建,解压,运行。

添加MySQL依赖

编辑文件:cas-overlay-template-6.2/build.gradle, dependencies 节点下加入驱动下载配置
dependencies {
    // Other CAS dependencies/modules may be listed here...
    // implementation "org.apereo.cas:cas-server-support-json-service-registry:${casServerVersion}"

    // 以下三行是新添加的
    compile "org.apereo.cas:cas-server-support-jdbc:${casServerVersion}"
    compile "org.apereo.cas:cas-server-support-jdbc-drivers:${casServerVersion}"
    compile "mysql:mysql-connector-java:8.0.15" // 注意自己的mysql版本
}

src/main/resources文件下的 application.properties配置文件加入数据库连接配置

#取消静态配置
#cas.authn.accept.users=casuser::Mellon
#cas.authn.accept.name=Static Credentials

#以下为本地的数据库配置信息
cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/apereo_cas?serverTimezone=UTC&allowMultiQueries=true
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=123456
cas.authn.jdbc.query[0].sql=select password from cas_users where username= ?
cas.authn.jdbc.query[0].fieldPassword=password # 这个值password,是数据表保存密码的字段名
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5 # 密码的加密方式为MD5

数据库中建表,并添加帐号记录

表结构可以随便建,在配置里对应好就可以用。

CREATE TABLE `cas_users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username_UNIQUE` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

INSERT INTO `apereo_cas`.`cas_users` (`username`, `password`) VALUES ('aaa', 'e10adc3949ba59abbe56e057f20f883e');
INSERT INTO `apereo_cas`.`cas_users` (`username`, `password`) VALUES ('bbb', 'e10adc3949ba59abbe56e057f20f883e');

密码为:123456
由于配置文件有使用MD5加密,这里数据库密码字段是存储的MD5加密后的数据,随便找一个MD5加密网站(https://md5jiami.51240.com/),把32位小写的加密密码存在数据库。

构建,解压,运行

> gradlew.bat build
> gradlew.bat explodeWar
> gradlew.bat run

浏览器输入地址:https://localhost:8443/cas/login
输入帐号:aaa  密码:123456

war方式启动

上一步测试后停止运行(ctrl+c)
进入到目录:build/libs。
执行:
java -jar cas.war

小贴士:

查看SQL在MySQL中是否已执行:
打开MySQL的SQL执行日志
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON'; -- 要关闭改为OFF

查询执行的SQL:
SELECT *, CAST(argument AS CHAR(10000) CHARACTER SET utf8) from mysql.general_log 
where command_type='Query' -- 只查询类型是Query的记录
ORDER BY event_time DESC;

-- truncate table mysql.general_log; -- 用于清理日志

6.4的构建步骤:(相对来说步骤要简单一些)

  1. 生成SSL要用的证书。
  2. 修改配置,并生效。
  3. 修改build.gradle,以支持MySQL。
  4. 构建,运行。

生成SSL要用的证书

配置好了JAVA_HOME,在任意目录都可以执行以下命令:

> keytool -genkey -v -keyalg RSA -alias cascer2 -keystore cascer2.jks -storepass 456789 -validity 10000

-storepass 指定证书的口令为:456789(最少6位),CAS默认的口令是:changeit
除第6步询问是否确认时输入:y,其它步骤都可以直接回车。

进入下载好的代码目录:(6.4版本的构建命令都在这个目录中执行)
> cd ./cas-overlay-template-6.4

修改配置,并生效

编辑文件:etc/cas/config/cas.properties

添加以下配置:
# cas.authn.accept.enabled=false
#server.port=8445 # 访问端口号,不影响cas.server.name的配置
server.ssl.key-store=file:C:\\Users\\nece001\\Desktop\\cascer2.jks # 证书位置
server.ssl.key-store-password=456789 #证书口令,如果用默认的changeit,可以不要这一项
server.ssl.key-password=456789 #证书口令,如果用默认的changeit,可以不要这一项

##Query Database Authentication 数据库查询校验用户名开始--------------------
##查询账号密码sql,必须包含密码字段(**重点要填自己的数据库的表名记得要改**)
cas.authn.jdbc.query[0].sql=select * from `cas_users` where `username`=?
##指定上面的sql查询字段名(必须!!!!**自己密码的字段记得要改**)
cas.authn.jdbc.query[0].fieldPassword=password
##指定过期字段,1为过期,若过期不可用
#cas.authn.jdbc.query[0].fieldExpired=expired
##为不可用字段段,1为不可用,需要修改密码
#cas.authn.jdbc.query[0].fieldDisabled=disabled
##数据库方言hibernate的
##cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.Oracle10gDialect
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQL5InnoDBDialect
##数据库驱动
##cas.authn.jdbc.query[0].driverClass=oracle.jdbc.driver.OracleDriver
cas.authn.jdbc.query[0].driverClass=com.mysql.cj.jdbc.Driver
###数据库连接
cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/apereo_cas?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=UTC& allowPublicKeyRetrieval=true
###数据库用户名
cas.authn.jdbc.query[0].user=root
###数据库密码
cas.authn.jdbc.query[0].password=123456
###默认加密策略,通过encodingAlgorithm来指定算法,默认NONE不加密
cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
##Query Database Authentication 数据库查询校验用户名结束

生效!!

保存后执行:./gradlew copyCasConfiguration
如果是windows,执行这句后会在代码所在盘的根目录产生一个etc目录,这个目录就是生效的配置目录,如:d:\etc\cas。如果需要修改配置可以直接修改这里的,不需要再执行生效命令。
如果是linux,就是目录/etc/cas。

修改build.gradle,以支持MySQL

dependencies {
    /**
     * CAS dependencies and modules may be listed here.
     *
     * There is no need to specify the version number for each dependency
     * since versions are all resolved and controlled by the dependency management
     * plugin via the CAS bom.
     **/

    ......

    # 修改下引入的格式
    // https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-jdbc
    //implementation group: 'org.apereo.cas', name: 'cas-server-support-jdbc', version: '6.4.2'
    implementation "org.apereo.cas:cas-server-support-jdbc:${project.'cas.version'}"

    // https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-jdbc-drivers
    //runtimeOnly group: 'org.apereo.cas', name: 'cas-server-support-jdbc-drivers', version: '6.4.2'
    implementation "org.apereo.cas:cas-server-support-jdbc-drivers:${project.'cas.version'}"
    
    implementation "mysql:mysql-connector-java:8.0.15"

    ......
}

构建,运行

> gradlew.bat clean build
> gradlew.bat run

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

apereo CAS Server 6.2.x 和 6.4.x 的部署 的相关文章

  • 如何在 Node.js server.listen() 中使用可选的主机名参数

    从我到目前为止在教程中读到的内容来看 可选的hostname参数为server listen port hostname backlog callback 一直都是127 0 0 1 环回 0 0 0 0 监听每个可用的网络接口 默认选项
  • 如何使用第三方 CAS 身份验证从独立的 React 前端和 django 后端(相同域,不同端口)对用户进行身份验证?

    我正在设置 django 后端Django REST framework用于提供API 通过第三方CAS服务器实现身份验证 目前我的后端认证已经成功实现 使用django cas ngpackage 这意味着我可以为不同的用户组实现不同的权
  • 同一服务器上的两个 Laravel 项目导致冲突

    我在同一台服务器上有两个 Laravel 5 1 项目 在单个项目上操作不会给我带来任何麻烦 但是如果我在两个浏览器选项卡上打开两个项目并在它们之间交替 我会收到 服务器遇到内部错误或配置错误 无法完成您的请求 进行了研究 发现服务器正在记
  • Kafka 服务器启动失败 - java.io.IOException:映射失败

    由于以下错误 我无法启动 Kafka 服务器 java io IOException Map failed at sun nio ch FileChannelImpl map FileChannelImpl java 940 at kafk
  • 服务器发送事件如何向特定客户端发送响应

    在服务器发送事件中 它总是向所有客户端发送相同的响应 但我想知道的是 如何使用 java 将响应发送到只有一个客户端 这是我在 sw js SSE 内部定义的事件 var eventSource new EventSource HelloS
  • Payara5 服务器将无法部署:未知协议 RFB

    在干净的 eclipse 环境中 payara5 将不会部署 我已经使用 java 1 8 下载了正确版本的服务器 只需将其添加到新服务器即可启动它 我无法摆脱这个错误 payara 登陆页面可以工作 但管理控制台超时 任何帮助表示赞赏 2
  • jmeter无法记录浏览器操作

    我正在使用 apache jmeter 2 6 我想使用 HTTP 代理服务器记录浏览器操作 但动作并没有记录 我已经在线程组下定义了 HTTP 请求默认值 我为服务器名称指定了值 如下所示 http www xxxxx com 81 ht
  • ipython 服务器无法启动:没有名为 notebook.notebookapp 的模块

    我一直在尝试按照几个教程设置 ipython 服务器 因为没有一个完全符合我的情况 几天前 我确实设法将其启动 但随后无法通过 url 访问它 今天它不再启动了 我找不到太多关于我得到的这个特定错误的信息 Traceback most re
  • 无法运行 Rails 服务器:`require':无法加载此类文件 -- net/ssh (LoadError)

    我正在尝试使用 michael hartl 指南来学习 ruby on Rails 过去 我能够完成新的 Rails Web 应用程序的设置 现在 当我尝试运行服务器时 出现以下错误 home ss rvm gems ruby 2 2 2
  • 如何使用 Express 和 NGINX 设置路由?

    我正在尝试使用 NGINX 作为反向代理来配置 Express 服务器 NGINX 提供静态文件 Express 提供动态内容 问题 正常的根链接有效 website com 但是当我导航到 website com api 时 我从 NGI
  • 如何在 Ubuntu Web 服务器上为 Dart 安装 pub(命令行使用)

    我已按照说明进行操作 在 Linux 选项卡下 将 Dart 安装到 Ubuntu Web 服务器上 Dart 本身工作正常 但我无法使用 Pub 命令 仅限 Dart 命令 如何为服务器安装 Pub 以下是使用 Aptitude apt
  • 套接字编程中的客户端到客户端消息传递

    我正在开发一个项目 该项目是基于 C 中的 WinSock 的服务器客户端应用程序 我已经完成了服务器和客户端之间通信所需的任何操作 我能够在它们之间发送和接收消息 现在我需要知道如何完成客户端到客户端消息传递部分以及必须如何完成工作 我只
  • Odoo 服务器无法在 Windows 10 中启动

    我在其官方社区版本页面上下载并安装了 odoo 13 然后当我安装一切正常并启动 odoo 时 浏览器会打开 localhost 8069 即 odoo 端口 并且不会打开任何内容 服务器只是不打开开始 我运行 odoo bin 这是我的错
  • 服务器显示文本而不是 HTML

    我正在尝试创建一个 C 服务器 它将接受输入并能够通过 html 格式将它们返回给用户 其中服务器充当用户界面 我当前的问题似乎无法弄清楚为什么 C 服务器在 localhost 3838 处将 HTML 代码以文本形式吐出 而不是将其显示
  • new URL() - WHATWG URL API

    我正在摆弄节点 并试图获取 URL 类的实例 因为这些方便的属性 喜欢 const URL require url http createServer request response gt let uri new URL request
  • 如何在Eclipse中添加JBoss服务器?

    我是 JBoss 的新手 刚刚安装了 Eclipse 我已将一个项目添加到工作区 现在我想将其部署到 Jboss 服务器 然而 在新的服务器运行环境列表中 JBoss 不可用 我正在使用以下 Eclipse 版本 面向 Web 开发人员的
  • 无法在运行 apache 服务器上访问 http://localhost:80

    在 ubuntu 14 04 中运行 apache 服务器时我得到 This webpage is not available 在浏览器中或 curl 7 Failed to connect to localhost port 80 Con
  • 如何在Windows平台上编写Git Server Hooks?

    我找不到任何适用于 Windows 的 Git 挂钩的明确示例 我在 Windows Server 上使用 Bonobo Git Server 我需要预提交和提交后挂钩作为 cmd 或 bat 预提交应检查空注释 提交后应发送有关提交的电子
  • 无法在服务器端 NodeJS 启用 CORS

    我无法启用CORS在服务器端 我的前端和后端服务器有不同的端口 服务器端的实现方式如下 http createServer function req res Here you can create your data response in
  • CAS 注销和 cookie 消除

    我刚刚制作了一个 HelloWorld servlet 并在其上实现了 CAS 我能够毫无问题地登录 并且 CAS 在我的浏览器中设置 3 个 cookie CASGT 并为 cas 设置 2 个 JSESSIONID 1 另一个为 hel

随机推荐

  • Linux —— 编译器gcc/g++

    目录 程序编译过程 gcc选项 函数库 GCC GNU Compiler Collection GUN 编译器集合 xff0c 它可以编译C C 43 43 JAV Fortran Pascal Object C Ada等语言 gcc是GC
  • 完全自学C(干货) —— 预处理详解

    目录 一 xff0c 预定义符号 二 xff0c define define定义的标识符 define定义宏 和 带副作用的宏参数 宏和函数的对比 undef 三 xff0c 命令行定义 四 xff0c 条件编译 五 xff0c 文件包含
  • 数据结构初阶 —— 树(二叉树)

    目录 一 xff0c 二叉树 特殊二叉树 二叉树的性质 二叉树的存储结构 二 xff0c 二叉树链式结构 二叉树的遍历 xff08 四种 xff09 二叉树接口 试题 一 xff0c 二叉树 由一个根节点 xff0c 加上两颗左二叉树和右二
  • rhel6和7中的服务启动以及计划任务

    rhel6下 服务启动命令 service servername start stop restart status 启动服务 xff0c 停止服务 xff0c 重启服务 xff0c 查看服务状态 etc init d servername
  • 数据结构初阶 —— 树(堆)

    目录 一 xff0c 堆 堆的概念 向下调整法 xff08 数组 xff09 向上调整法 xff08 数组 xff09 堆的创建 xff08 建堆 xff09 堆的实现 一 xff0c 堆 堆的概念 如有个关键码的集合K 61 xff0c
  • SD-WAN介绍

    在说SD WAN之前 xff0c 先把WAN搞清楚 xff0c 什么是WAN xff1f WAN xff0c Wide Area Network xff0c 是指分布在不同地理位置 xff0c 连接多个LAN的私有通信网络 在企业网络中 x
  • Win10安装Ubuntu子系统及图形化界面详细教程20210401

    Win10安装Ubuntu子系统及图形化界面详细教程 WSL xff08 Windows Subsystem for Linux xff09 xff0c 顾名思义就是Windows中可以用Linux了 xff0c 当然命令也会丰富更多 xf
  • python在函数中改变外部变量

    python在函数中改变改变外部变量 python在函数中修改变量值的方法 和其他语言不一样 xff0c 传递参数的时候 xff0c python不允许程序员选择采用传值还是传引用 Python参数传递采用的肯定是 传对象引用 的方式 实际
  • Linux在执行命令并将结果赋值给变量

    通过find命令在 etc目录下查找sources list文件 xff0c 将结果赋值给temp变量 temp span class token operator 61 span span class token variable spa
  • MAC去掉更新小红点

    1 打开 系统偏好设置 点击 软件更新 2 取消选择 自动保持我的Mac最新 3 然后点击 高级 按钮 xff0c 取消所有的勾选 4 通过上面步骤设置后 xff0c 发现底部的小红点还在 xff0c 则需打开终端 5 打开终端执行如下代码
  • MQ-2烟雾传感器模块功能实现(STM32)

    认识MQ 2模块与其工作原理 MQ 2型烟雾传感器属于二氧化锡半导体气敏材料 xff0c 属于表面离子式N型半导体 当处于200 300摄氏度时 xff0c 二氧化锡吸附空气中的氧 xff0c 形成氧的负离子吸附 xff0c 使半导体中的电
  • [编程题]提取不重复的整数

    Talk is cheap show me the code 一 问题描述 输入一个int型整数 xff0c 按照从右向左的阅读顺序 xff0c 返回一个不含重复数字的新的整数 输入描述 xff1a 输入一个int型整数 输出描述 xff1
  • [编程题]判断两个IP是否属于同一子网

    Talk is cheap show me the code 一 问题描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据 二 问题分析 这道题又是一道坑题 xff0c 题意没描述清楚 xff0c 首先判断一个ip或者m
  • centos7永久关闭防火墙

    首先输入用户名和密码进入centos7 接着先是看centos7的防火墙的状态 xff0c 查看的命令为 sudo systemctl status firewalld 查看后 xff0c 看到active running 就意味着防火墙打
  • ubuntu系统安装Go和liteide及环境配置

    大家好 xff0c 我是加摩斯 xff0c 觉得文章有帮助的小伙伴 xff0c 记得一键三连哟 xff5e 申明 xff1a 原创 xff0c 转载前请与我沟通 搭建环境是编程中最基本的工作 xff0c 但有时方法不对 xff0c 也会踩到
  • OVS的作用OVS 总体架构、源码结构及数据流程全面解析

    为什么要有OVS 1 xff09 方便网络管理与监控 OVS 的引入 xff0c 可以方便管理员对整套云环境中的网络状态和数据流量进行监控 xff0c 比如可以分析网络中流淌的数据包是来自哪个 VM 哪个 OS 及哪个用户 xff0c 这些
  • LATEX——两张图并列排列/双栏模板中图片通栏并列布局

    LATEX 两张图并列排列 双栏模板中图片通栏并列布局 正常插入图片并列插入两张图片双栏模板中图片通栏并列布局1 不同图片使用不同标题 xff0c 不同编号 双栏模板中图片通栏并列布局2 xff08 不同图片使有不同的小标题 xff0c 但
  • SUMO输出文件设置

    1 fcd浮动车数据输出 轨迹数据输出 sumo c demo sumocfg fcd output fcd1 xml 2 设置E3检测器 E3检测器简介 Multi Entry Exit Detectors xff08 E3 xff09
  • 私有地址

    私有地址 xff08 Private address xff09 属于非注册地址 xff0c 专门为组织机构内部使用 以下表列出留用的内部寻址地址 A类 10 0 0 0 10 255 255 255 B类 172 16 0 0 172 3
  • apereo CAS Server 6.2.x 和 6.4.x 的部署

    代码地址 xff0c 分别下载6 2和6 4两个版本 https github com apereo cas overlay template 版本地址 xff1a https github com apereo cas overlay t