【SSO】CAS从数据库加载用户和密码信息

首先要按上一篇文章说的用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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值