这个弄了好久才终于弄好
可以参照官方文档弄:https://apereo.github.io/cas/4.2.x/installation/Database-Authentication.html
首先将mysql驱动jar包导入项目的lib中,然后在tomcat里找到cas的配置文件:deployerConfigContext.xml 、 cas.properties 进行配置。
配置deployerConfigContext.xml
注释掉:
<alias name="acceptUsersAuthenticationHandler" alias="primaryAuthenticationHandler" />
增加数据库连接池配置:特别注意的是:jdbcUrl的配置,里面如果有“&” 的,要替换成“&”,不替换tomcat启动的时候报错:【对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾】,另外,jdbcUrl根据具体情况配置,不是固定写法。
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
p:driverClass="com.mysql.jdbc.Driver"
p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/renren?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"
p:user="root"
p:password="root"
p:initialPoolSize="6"
p:minPoolSize="6"
p:maxPoolSize="18"
p:maxIdleTimeExcessConnections="120"
p:checkoutTimeout="10000"
p:acquireIncrement="6"
p:acquireRetryAttempts="5"
p:acquireRetryDelay="2000"
p:idleConnectionTestPeriod="30"
p:preferredTestQuery="select 1" />
可以参照官网,把参数写到cas.properties配置文件中
在deployerConfigContext.xml里加入:
<alias name="queryDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="dataSource" alias="queryDatabaseDataSource" />
在cas.properties里加入:此文件中原本就有这行配置,是被注释掉的,可以放开,或者直接复制进去就行,【=】号后面的是查询mysql的sql语句,根据用户名查密码。需要自己更改。
cas.jdbc.authn.query.sql=select password from users where username=?
都保存了,重启tomcat做实验就行啦。
前面不是提到过 cas默认用户是casuser吗?他是在cas.properties中配置