cas单点登录学习:配置数据库验证进行登录
上一篇文章中,我们顺利的搭建了cas的服务端与客户端,但是登录账号cas只提供了一个默认的用户,若是自己想在实际项目中运用,这是肯定不行的,所以,我们最好的解决方式就是配置数据库的验证。话不多说,接下来就开始配置cas服务端。
首先,我们要配置的是服务端的配置文件,所以,先进入部署了cas服务端的tomcat文件夹,找到webapps->cas->WEB-INF->deployerConfigContext.xml文件,如下图
打开文件,找到下图部分:
这一块就是cas的登录用户配置,里面依旧有一个默认的用户,就是casuser Mellon,所以我么要做的就是把这里变成数据库的配置啦,很简单,就是修改以上代码,变成:
<bean id="primaryAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource" /> <property name="sql" value="select password from user where username = ?" /> </bean> <!-- MySQL connector --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/cas</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123456</value> </property> </bean>
这里需要说明一下这个配置:首先cas提供的验证器有三个,默认选择的是AcceptUsersAuthenticationHandler,这里需要改变为QueryDatabaseAuthenticationHandler,这里面就需要注入一个数据源和查询sql。
所以,我们就在下面配置了一个bean名为dataSource,dataSource的配置就不用多说咯,根据自己的数据库配置而定,这里只是demo,sql也是同理。其实这里还有一个是密码加密的,但是笔者这里只是简单介绍一下数据库配置,就不多提,其实也很简单。数据源用的是commons dbcp。
emmmm。。。好像就已经ok了,最后当然还需要加入架包啦,这可是灵魂啊。这里需要加入以下架包:
就这四个,添加至tomcat->webapps->cas->WEB-INF->lib,这样就ok啦。接下来做个测试吧,创建一个用户表,笔者这里有:
然后启动tomcat,输入地址:localhost:8111/casDemo01/,使用数据库用户进行登录,如图:
登陆后:
架包下载地址:链接:https://pan.baidu.com/s/1i57vuUp 密码:99og