首先要按上一篇文章说的用cas-overlay-template打包并运行起来,可以用固定用户和密码登录。
修改POM文件,添加对数据库的支持:
<!--数据库认证相关 start-->
<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>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.driver.version}</version>
</dependency>
<!--数据库认证相关 end-->
位置在如下位置:
打包成war包后,修改WEB-INF\classes\application.properties
将最后一行cas.authn.accept.users=casuser::Mellon
加井号注释掉,再加入以下内容
cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/sso?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
//此处填mysql数据库用户名
cas.authn.jdbc.query[0].user=cas
//此处填mysql数据库密码
cas.authn.jdbc.query[0].password=123456
cas.authn.jdbc.query[0].sql=select * from cas where username=?
cas.authn.jdbc.query[0].fieldPassword=password
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
用数据库root用户好像不行,一直连接不上。
cas.authn.jdbc.query[0].sql
是将密码查出来的SQL,只有一个问号代表用户名,表名和列名都是自定义的
cas.authn.jdbc.query[0].fieldPassword
是查询结果中,密码列的列名
新建一张表如下:
CREATE TABLE `cas` (
`username` varchar(255) NOT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用户名和密码都是明文,admin做用户名好像不行。
最后改好启动,输入数据库中的用户名和密码就可以登录了。
编译问题
编译安装依赖时提示: Failure to find net.shibboleth.tool:xmlsectool:jar:2.0.0
这是因为这个包的maven依赖下载不下来。
可以手动下载下xmlsectool-2.0.0.jar,然后用下面的命令安装:
mvn install:install-file -Dfile=C:/jar/xmlsectool-2.0.0.jar -DgroupId=net.shibboleth.tool -DartifactId=xmlsectool -Dversion=2.0.0 -Dpackaging=jar