cas4.2.7学习(三)cas server 配置oracle 数据库

8 篇文章 1 订阅

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 重新配置一下,即可。

重新配置之后再次启动就没问题了:

打开浏览器输入数据库中的用户名密码:

测试成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值