1. CAS 构建工具说明
CAS版本 | overlay-template 构建方式 | Java版本 |
---|---|---|
5.x | Maven | 1.8+ |
6.x | Gradle | 1.9+ |
Tip:本文档使用 5.3.14 版本。
2. 安装准备
1. 安装 Java(安装过程略)
2. 安装 Maven
1. 下载Maven,地址:https://maven.apache.org/
2. 解压下载的文件
3. 配置Maven,配置文件在Maven解压目录下:conf/settings.xml
* 指定本地 Jar 存放目录路径,如果不指定,默认在 "[用户家目录]/.m2" 目录下。(非必须):
<localRepository>D:\\maven\\repository</localRepository>
* 配置远程仓库地址,推荐使用阿里的仓库,如果不配置有些包会下载的很慢。(视你的网络情况而定,非必须)
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
* 将 Maven 目录的bin路径添加到 系统环境变量 Path 中,CAS 构建命令会使用到Maven命令,如果没有配置环境变量,会无法执行。(**必须**)
5. 从github下载稳定版分支 cas-overlay-template-5.3,地址:https://github.com/apereo/cas-overlay-template/branches/stale
3. 开始构建CAS
1. 构建项目比较简单,只需要到下载的 cas-overlay-template 目录执行:
build.cmd clean # 清除生成的内容,第一次会下载一堆包
build.cmd package # 编译打包,第一次会下载一堆包,如果下载慢可以换个 maven 的仓库源
build.cmd run # 直接启动 cas,启动后可以通过 http://localhost:8443/cas 访问,默认用户名密码“casuser/Mellon”,这个可以用于快速验证 cas
2. 如何取消 https,测试时取消 https 比较方便,取消方法:
* 修改 target/cas/WEB-INF/classes/application.properties 文件,增加配置:
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
* 修改 target/cas\WEB-INF\classes\services/HTTPSandIMAPS-10000001.json 文件为:
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|http|imaps)://.*",
"name" : "HTTPS and IMAPS",
"id" : 10000001,
"description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
"evaluationOrder" : 10000
}
3. 配置 MySQL 数据库认证:
* 修改 overlay-template 的 pom.xml 文件,增加对数据库的支持:
<!--新增支持jdbc验证-->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
<!--自适配数据库驱动,其中包括HSQLDB、Oracle、MYSQL、PostgreSQL、MariaDB、Microsoft SQL Server-->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc-drivers</artifactId>
<version>${cas.version}</version>
</dependency>
* 配置 appalication.properties 文件,指定数据库信息(追加):
##
# CAS Authentication Credentials
#
# 使用数据库,默认演示用的登陆账号 关闭掉(注释掉)
# cas.authn.accept.users=casuser::Mellon
# 关闭 https
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
# 连接 MySQL 数据库认证
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/kmc_cscrm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=root
# cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
# 查询用户信息SQL
cas.authn.jdbc.query[0].sql=select * from tb_account where name=?
cas.authn.jdbc.query[0].fieldPassword=password
# cas.authn.jdbc.query[0].fieldExpired=expired
# cas.authn.jdbc.query[0].fieldDisabled=disabled
# 密码加密策略,默认不加密,这里使用 MD5 加密
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
# cas.authn.jdbc.query[0].passwordEncoder.secret=
# cas.authn.jdbc.query[0].passwordEncoder.strength=32