CAS4.2.5 配置jdbc连接MySql校验用户

最近用了CAS做SSO,截止目前最新的版本是4.2.6,我们选了4.2.5,觉得较为稳定一些,为了配置连接MySql花了很多功夫,于是决定分享一下,避免以后走弯路。

网上的配置大都停留在3.x版本上,只配置xml就行,但是jasig在4.x版本以后,需要配置cas.properties文件,网上没找到现成的资料,愁的头疼。

由于jasig的网站和git上的地址都换了,所以官方的文档找不到了,几经波折,发现了官网的文档地址:

https://apereo.github.io/cas/4.2.x/installation/Database-Authentication.html#database-components

其实根据文档配置就好了,在这里翻译一下,另外标注几个需要注意的点:

1、下载依赖的jar包,最方便的是用maven,直接就把依赖的所以jar都下载了,对于我这种maven用的不溜的,想了个笨办法:在Eclipse建一个maven项目,填写dependency,version:4.2.5(最新4.2.6),等maven upate结束,打成war包,再解压,所有的依赖jar包都在 lib里了。简单粗暴。

<dependency>
    <groupId>org.jasig.cas</groupId>
    <artifactId>cas-server-support-jdbc</artifactId>
    <version>${cas.version}</version>
</dependency>

2、cas-server-support-jdbc需要依赖的包:

       c3p0

       Mysql的jdbc驱动包(根据数据库自行选择)

       所有依赖jar包放到cas-server-webapp的WEB-INF的lib下。有冲突的覆盖或跳过都没问题。版本一致就好。

3、在tomcat里找到cas的配置文件:deployerConfigContext.xml 、 cas.properties 进行配置。

4、配置deployerConfigContext.xml

      注释掉:      

<alias name="acceptUsersAuthenticationHandler" alias="primaryAuthenticationHandler" />

     增加数据库连接池配置:特别注意的是:jdbcUrl的配置,里面如果有“&” 的,要替换成“&amp;”,不替换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/sso_test?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull"
      p:user="fiad"
      p:password="fiad"
      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" />

     我这里偷了个懒,把jdbc的配置直接写xml里面了,也可以配置变量,然后具体值写到cas.properties里,可以参考官方文档。

     官方提供了四种方式配置数据库验证。

     第一种:配置sql语句 :QueryDatabaseAuthenticationHandler

     在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做实验就行啦。

      目前只实现了这一种,2,3,4种方法,在官方文档里都有说明,请参照,另外说明一下,目前这种方法是没有加密的,即密码是明文的,回头研究一下加密方式的,再开个新贴。

转载于:https://my.oschina.net/u/2541179/blog/757505

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值