cas + tomcat 访问数据库验证用户名密码学习笔记(二)

    在上一篇文章中我们已经搭建好了一个简单的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,进入登录页面,输入数据库中存在的用户名和密码,如下图:


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



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


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



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值