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

代码地址,分别下载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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值