MySQL数据库支持
CAS服务器默认不支持数据库,登录页上可以看到有一条错误提示”Static Auentication”。
测试新建一个MySQL数据库,可以按需增加字段:
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for cas_user_base -- ---------------------------- DROP TABLE IF EXISTS `cas_user_base`; CREATE TABLE `cas_user_base` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `user_psd` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
插入测试一个数据
1 admin 123456
用IDEA打开CAS服务器代码,在pom文件中增加jdbc支持:
<!-- 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 -->
在application.properties增加数据库配置:
cas.authn.jdbc.query[0].sql=SELECT * FROM cas_user_base WHERE user_name=? cas.authn.jdbc.query[0].url=jdbc:mysql://mysqlIP地址:mysql端口/库名?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=mysql账号 cas.authn.jdbc.query[0].password=mysql密码 cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver cas.authn.jdbc.query[0].fieldPassword=user_psd
重新打包,替换cas.war。
启动服务器,浏览器打开http://127.0.0.1:8080/cas/login 报错信息也没有了。
用测试账号密码可以登录成功