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

原文地址:https://www.cnblogs.com/advanceBlog/p/8094070.html