CAS4.2.5 配置jdbc连接MySql校验用户
2017-04-05 17:44
501 查看
最近用了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里了。简单粗暴。
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
注释掉:
增加数据库连接池配置:特别注意的是:jdbcUrl的配置,里面如果有“&” 的,要替换成“&”,不替换tomcat启动的时候报错:【对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾】,另外,jdbcUrl根据具体情况配置,不是固定写法。
我这里偷了个懒,把jdbc的配置直接写xml里面了,也可以配置变量,然后具体值写到cas.properties里,可以参考官方文档。
官方提供了四种方式配置数据库验证。
第一种:配置sql语句 :QueryDatabaseAuthenticationHandler
在xml里加入:
在cas.properties里加入:此文件中原本就有这行配置,是被注释掉的,可以放开,或者直接复制进去就行,【=】号后面的是查询mysql的sql语句,根据用户名查密码。需要自己更改。
都保存了,重启tomcat做实验就行啦。
目前只实现了这一种,2,3,4种方法,在官方文档里都有说明,请参照,另外说明一下,目前这种方法是没有加密的,即密码是明文的,回头研究一下加密方式的,再开个新贴。
网上的配置大都停留在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的配置,里面如果有“&” 的,要替换成“&”,不替换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&characterEncoding=UTF-8&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种方法,在官方文档里都有说明,请参照,另外说明一下,目前这种方法是没有加密的,即密码是明文的,回头研究一下加密方式的,再开个新贴。
相关文章推荐
- JDBC连接MySql不需要再配置noAccessToProcedureBodies
- centos 安装glassfish4.0 配置jdbc连接mysql
- WDCP打开网页时报错:无法连接mysql,请检查mysql是否已启动及用户密码是否配置正确
- MyEclipse 2013配置JDBC连接mySQL||Tomcat 7.0 8.0 配置 JDBC |配置mysql-connector-java-5.1.16
- JDBC连接MySQL方法之三 创建配置文件
- cas-server Jdbc 连接读取用户(5)
- Apache Tomcat/6.0.39如何配置连接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功连接心得
- cas+tomcat+shiro实现单点登录-3-CAS服务器深入配置(连接MYSQL)
- javaweb JDBC 数据库连接mysql 配置代码 (直接可用)
- Mysql在spring中jdbc.properties连接配置
- MySQL 实例配置的"Apply security settings"错误 、 Java通过JDBC无法连接MySQL的 分析
- jdbc连接mysql(配置在tomcat6.5中)
- mysql和eclipse连接jdbc驱动配置
- JMeter JDBC mysql连接配置
- WDCP打开网页时报错:无法连接mysql,请检查mysql是否已启动及用户密码是否配置正确
- MySQL配置远程用户连接
- 防止连接Mysql超时,JDBC探活配置
- CentOS安装GlassFish4.0 配置JDBC连接MySQL
- JDBC操作MySQL连接配置
- 利用jdbc连接sqlserver2008(打开用户,配置远程登录)