历史版本11 :实现基于数据库的身份验证 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 添加依赖编辑

这里以mysql数据库为例。
拷贝cas-server-support-jdbc-3.5.2.jarmysql驱动包%TOMCAT_HOME%\webapps\cas\WEB-INF\lib目录下;如下图:

222
注:如果使用其他数据库,把对应的数据库jdbc驱动包放到该目录下。

2. 创建数据库、表
表名userinfo,用户名username,密码userpass,如下图:

222


3. 配置CAS实现基于数据库的身份验证编辑

3.1 步骤一
以管理员身份启动文本编辑工具,打开%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml。找到下面的代码
<bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl">
3.2 步骤二
在该段代码前面插入 mysql JDBC 数据源配置信息
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>驱动器</value></property> <property name="url"><value>url</value></property> <property name="username"><value>数据库用户名</value></property> <property name="password"><value>数据库密码</value></property> </bean>
注:上面的驱动器替换为对应数据库的驱动器,如果是mysql,则为com.mysql.jdbc.Driver,url为jdbc:mysql://ip:port/databaseName,同时数据库用户名和密码替换为实际使用的用户名和密码。

222
如果使用其他数据库,驱动器及url请参考 JDBC连接数据库
3.3 步骤三
找到如下配置信息:
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
注:该配置信息使用SimpleTestUsernamePasswordAuthenticationHandler验证用户,即默认用户名和密码相同则验证通过,用户名密码不同则登录失败。我们需要将其替换成基于数据库验证的配置信息。
首先将上面的配置信息注释掉,并在其下面插入如下配置信息:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource" /> <property name="sql" value="select userpass from userinfo where username=?" /> </bean>

222


QueryDatabaseAuthenticationHandler:是cas-server-support-jdbc提供的查询接口其中一个,QueryDatabaseAuthenticationHandler是通过配置一个 SQL 语句查出密码,与所给密码匹配
dataSource:是使用JDBC查询时的数据源
sql:语句就是查询哪一张表,本例根据userinfo表的username字段查询密码,CAS会匹配用户输入的密码,如果匹配则通过
3.4 步骤四
保存对%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml所做的修改。
3.5 步骤五
重新启动 Tomcat 服务。

4. 测试基于数据库的身份验证编辑

在浏览器中输入网址https://localhost:8443/cas/login,如果IE有证书警告信息,直接点击“继续浏览此网站(不推荐)。

222

CAS会匹配用户输入的用户名密码,和userinfo表的用户名密码,如果匹配则通过则系统显示登录成功

222