概要说明
前面的CAS SEVER中的登录帐号名是配置中写死的,实际情况中不太可能用这些方法。通常情况下,数据库的帐号名密码都是在数据库表中的,这样可以对登录帐号进行增删改的处理。 如果您对搭建固定帐号的CAS SERVER还不了解的话,可以查看上一章节《轻松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端》 本文就是来解决这个问题的。
操作步骤
可以看到上一张中登录的画面中,还是有一条错误提示
OK,看到错误了,那我们继续。
·1. 我们此次使用的是Mysql数据库,先到数据库中创建表和帐号数据
--创建数据库表空间 CREATE DATABASE test_cas DEFAULT CHARSET utf8 COLLATE utf8_general_ci; USE test_cas; --创建帐号信息表 DROP TABLE IF EXISTS `cas_user_base`; CREATE TABLE `cas_user_base` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `user_name` VARCHAR(45) DEFAULT NULL, `user_psd` VARCHAR(45) DEFAULT NULL, PRIMARY KEY (`id`) ); --插入登录帐号数据 INSERT INTO `cas_user_base` VALUES (1,'admin','123456'),(2,'guest','123456');
·2. cas overlay添加数据库的JDBC插件,在pom.xml增加如下配置
<!-- Database Authentication Begin --> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-jdbc</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-jdbc-drivers</artifactId> <version>${cas.version}</version> </dependency> <!-- Database Authentication End -->
·3. cas overlay增加数据库连接配置
创建目录 D:casoverlaycas-overlay-templatesrcmain esources,
并新增文件application.properties,
具体文件内容如下
cas.authn.jdbc.query[0].sql=SELECT * FROM cas_user_base WHERE user_name=? cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/test_cas?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=UTC cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect cas.authn.jdbc.query[0].user=root # 此次是数据库密码 cas.authn.jdbc.query[0].password= cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver cas.authn.jdbc.query[0].fieldPassword=user_psd
-4. cas overlay重新打包
打包命令如下
mvn package
第一次数据会比较慢,overlay需要下载jdbc的插件,mysql的驱动也会自动下载。
打包后,会生成目录 D:casoverlaycas-overlay-template argetcas
-5. 检查下打包是否成功,检查两点:
- 检查D:casoverlaycas-overlay-template argetcasWEB-INFclasses目录下application.properties是否就是我们刚才写的文件
- 检查D:casoverlaycas-overlay-template argetcasWEB-INFlib目录下是否有cas-server-support-jdbc-5.1.9.jar和mysql-connector-java-6.0.5.jar(如果版本号不一样也是属于正常的)
-6. OK,吧打包的cas目录复制到tomcat的webapps目录中
把D:casoverlaycas-overlay-template argetcas下的cas目录复制到D:casoverlayapache-tomcat-8.5.31webapps
-7. 启动tomcat
双击文件D:casoverlayapache-tomcat-8.5.31instartup.bat
打开浏览器
输入https://cas.example.org:8443/cas/login
你会发现登录画面上中的最后一个登录错误提示也消失了
输入帐号名admin,密码是123456
看到登录成功画面,大功告成。
参考文档