- 部署CAS 服务端,最简单的方式就是使用CAS官方提供的Overlay模板,通过它我们可以直接构建出任意版本的cas war 包。这里演示采用6.4版本,地址:https://github.com/apereo/cas-overlay-template/tree/6.4
- 新建一个cas数据库,新建一张用户表,脚本参考如下;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`expired` int(11) DEFAULT NULL,
`disabled` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
//插入一条用户数据,用户名为admin,密码为admin,通过MD5加密
INSERT INTO `user` VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 0, 0);
3.生成签名证书,参考链接:Mac通过Keytool生成签名证书
4.通过idea打开cas-overlay-template-6.4项目,在src/main/resources/application.yml文件下添加如下信息:
# Application properties that need to be
# embedded within the web application can be included here
server:
ssl:
key-store: file:/Users/jiejie/Desktop/jiejie.keystore //证书
key-store-password: 123456 //密钥
key-password: 123456 //密钥
enabled: true
cas:
authn:
jdbc:
query:
- dialect: org.hibernate.dialect.MySQLDialect
driverClass: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/cas?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
user: root
password: 123456
fieldPassword: password
sql: select * from user where username=?
passwordEncoder:
type: DEFAULT
characterEncoding: UTF-8
encodingAlgorithm: MD5 //加密
基本参考复制以上信息就好,要修改的有证书地址,密钥,driverClass如果mysql驱动版本高的话,也要改,url,user,password改下即可。
5.此时项目可能会有些情况,由于cas6.4版本是基于Gradle构建的,idea打开项目,如果编译出现的一些问题,不熟悉Gradle的,排查起来很困难,此时换个方式,通过命令行进入cas-overlay-template-6.4项目,运行命令./gradlew clean build
直接构建项目,如果是windows电脑,就用./gradlew.bat clean build
命令(没试过,不过猜测是这样的),此时发现不会报错,正常构建。
6.构建过后,会发现cas-overlay-template-6.4项目下多了个build文件夹,找到war包,如下:
7.通过命令java -jar build/libs/cas.war
启动这个war包,通过观察启动的一些日志信息,会发现此时已经引入了yml配置文件中我们定义的信息。
8.启动成功后,访问https://localhost:8443/cas/login,输入admin/admin,会发现该用户可以成功认证,不再只有写在配置文件的默认用户casuser了。