1、加入jar包
cas server jdbc支持
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>4.2.7</version>
</dependency>
Oracle驱动
oracle驱动没有maven 依赖,可直接在外部导入
在WEB-INF下创建lib,将ojdbc6.jar 拷贝进去,右键➡build path➡ add to build path 即可
发现问题:我们导入jar包之后,打开 maven dependenceies 可能会发现,里边出现了很多jar包,但都是灰色的,这时需要将pom.xml中的
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-webapp</artifactId>
<version>${cas.version}</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
里边的<scope>runtime</scope>去掉,然后 maven update一下,会发现所有jar基本都正常了。
2、修改cas.properties
打开cas.properties 找到:
打开注释(用什么属性,打开什么属性即可),配置数据库链接,例如:
cas.audit.database.show.sql=true
cas.audit.database.driverClass=oracle.jdbc.driver.OracleDriver
cas.audit.database.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
cas.audit.database.user=test
cas.audit.database.password=test
配置密码查询sql语句:
找到cas.jdbc.authn.query.sql属性,打开注释,配置sql 例如
cas.jdbc.authn.query.sql=select pwd from user_info where ueser_id=?
这个sql中能且只能返回一个密码字段,网上的什么select * 是错的。
3、配置deployerConfigContext.xml
从target中找到deployerConfigContext.xml,拷贝一份到项目的WEB-INF下
打开deployerConfigContext.xml找到:
<util:map id="authenticationHandlersResolvers">
<entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
<entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
</util:map>
在里边添加数据认证方式(原有的认证方式如果不需要可以删掉):
<util:map id="authenticationHandlersResolvers">
<entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
<!-- 默认配置文件用户认证方式,可屏蔽 -->
<!-- 添加数据库认证 -->
<entry key-ref="databaseAuthenticationHandler" value-ref="primaryPrincipalResolver" /></util:map>
配置链接池,以及将链接池与认证方式关联,在deployerConfigContext.xml中添加:
<!-- 配置queryDatabaseAuthenticationHandler别名 -->
<alias name="queryDatabaseAuthenticationHandler" alias="databaseAuthenticationHandler" />
<!-- 配置dataSource别名 -->
<alias name="dataSource" alias="queryDatabaseDataSource" />
<!--数据库连接池配置-->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
p:driverClass="${cas.audit.database.driverClass}"
p:jdbcUrl="${cas.audit.database.url}"
p:user="${cas.audit.database.user}"
p:password="${cas.audit.database.password}"
/>
4、测试
配置完成后,发布tomcat 测试,启动tomcat报错:
很明显jar包冲突了,原因:在eclipse中每次发布项目的时候,在tomcat插件项目实际发布位置里边的WEB-INF下的文件并没有变,也就是缓存一直都在,就算你把项目在tomcat中删掉,然后打开它的实际发布路径中看,它还是存在的,我个人觉得这应该是maven overlay导致的。
解决办法:删除eclipse中原来的tomcat server 重新配置一下,即可。
重新配置之后再次启动就没问题了:
打开浏览器输入数据库中的用户名密码:
测试成功