我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在上一篇文章中我们已经搭建好了一个简单的cas服务端,该服务端并未访问数据库进行用户名和密码验证,而是在配置文件中规定的用户名和密码,大家在配置的cas服务器的D:\apache-tomcat-6.0.29\webapps\cas\WEB-INF路径下找到文件deployerConfigContext.xml打开如下图所示:

在图中可以看到规定的用户名和密码:casuser/Mellon(老版本的可能不一样,这里用的是cas server 4.0),在项目中我们肯定是要访问数据库进行用户名和密码的验证的,显而易见我们要更改这个文件的配置。首先,我们要把上图中这段代码注释掉,然后换成如下代码:

<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
              <property name="driverClassName">
                 <value>oracle.jdbc.driver.OracleDriver</value>
              </property>
              <property name="url">
                 <value>jdbc:oracle:thin:@192.168.0.xxx:1521:orclgbk</value>
              </property>
              <property name="username">
                 <value>spjx2</value>
              </property>
              <property name="password">
                 <value>xxx</value>
              </property>
</bean>
<bean id="primaryAuthenticationHandler"
					class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
					<property name="sql"
						value="select password from sys_user where 1=1 and username=? and flag=1" />
					<property name="dataSource" ref="dataSource" />
				</bean>
从以上代码可以看出我用的是oracle数据库,你可以选择使用自己适合的数据库(这里省略了创建数据库和建表的操作),在id="dataSource" 的bean中看到需要引入数据库驱动、url、用户名、密码,id="primaryAuthenticationHandler"的bean是用来链接数据库并验证用户名和密码,有关“org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler”的解释请到这篇“使用 CAS 在 Tomcat 中实现单点登录”文章中看,里边有详细的解释。

另外,一般数据库中的密码都是经过加密的,我这里测试的是没有加密的,如果经过了MD5加密,就要增加如下配置:

<bean id="MD5PasswordEncoder"
		class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
		<constructor-arg index="0" value="MD5" />
	</bean>

同时修改

<bean id="primaryAuthenticationHandler"
					class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
					<property name="sql"
						value="select password from sys_user where 1=1 and username=? and flag=1" />
					<property name="dataSource" ref="dataSource" />
					<property name="passwordEncoder" ref="MD5PasswordEncoder" />
				</bean>

然后,我们只需要从我门下载的cas-server-4.0.0-release.zip,解压后在cas-server-4.0.0\modules路径下的cas-server-support-jdbc-4.0.0.jar包复制到cas服务器的apache-tomcat-6.0.29\webapps\cas\WEB-INF\lib中,然后不要忘了导入数据库驱动包,我这里用的是oracle,导入了ojdbc6.jar包。

到此,我们的配置就结束了,现在重启服务器,在浏览器中输入路径:http://localhost:8080/examples/servlets/servlet/HelloWorldExample,进入登录页面,输入数据库中存在的用户名和密码,如下图:


点击登录跳转到了如下页面:


到了这个页面说明我们已经成功了,另外,从后台服务器打印中可以看出服务器访问了数据库进行了,用户名和密码的验证,如下图:


我随意输入一个错误的用户名和密码可以看到如下的验证失败的打印信息:


我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为1000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版百度优化、名注册、主机空间、手机网站建设公众号开发小程序制作、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线: 13820372851,我们会详细为你一一解答你心中的疑难。项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13820372851

上班时间

周一到周五

公司电话

022-26262675

二维码
线
在线留言