(转)Yale CAS + .net Client 实现 SSO(4)
- 第一部分:安装配置 Tomcat
- 第二部分:安装配置 CAS
- 第三部分:实现 ASP.NET WebForm Client
第四部分:实现基于数据库的身份验证
1.下载 Microsoft JDBC Driver for SQL Server。
(1)Microsoft JDBC Driver 4.0 for SQL Server 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=11774
网站提供了两种格式文件供下载,一种是自解压的EXE格式文件,还有一种是tar.gz格式的压缩文件。两种格式选其一下载即可,经过解压缩,可以得到两个JAR格式文件:sqljdbc.jar与sqljdbc4.jar。
(2)由于本人使用的是SQL Server 2012,因此需将“sqljdbc4.jar”拷贝至“%TOMCAT_HOME%\webapps\cas\WEB-INF\lib”文件夹。
(3)在本系列第二部分曾经提及从CAS网站下载“cas-server-3.5.1-release.zip”并解压缩。在解压缩的文件下中找到“modules\cas-server-support-jdbc-3.5.1.jar”,将其一并拷贝至“%TOMCAT_HOME%\webapps\cas\WEB-INF\lib”文件夹。
2.创建用于身份验证的数据库
(1)启动SQL Server Management Studio,新建一数据库“UsersDB”,并在其中建立表“Users”,字段如下:

(2)在表中输入若干测试数据:

3.配置CAS实现基于数据库的身份验证
(1)以管理员身份启动文本编辑工具,打开“%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml”。找到下面的代码
<bean id="authenticationManager"
class="org.jasig.cas.authentication.AuthenticationManagerImpl">
(2)在该段代码前面插入 SQL Server JDBC 数据源配置信息:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://192.168.0.123:1433;databaseName=UsersDB"></property>
<property name="username" value="sa"></property>
<property name="password" value="YourPassword"></property>
</bean>
如下图所示:

(3)找到如下配置信息:
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
该配置信息使用SimpleTestUsernamePasswordAuthenticationHandler验证用户,即默认用户名和密码相同则验证通过,用户名密码不同则登录失败。我们需要将其替换成基于数据库验证的配置信息。
首先将上面的配置信息注释掉,并在其下面插入如下配置信息:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select Password from users where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
如图所示:

说明:如果你安装的是SQL Server 2012,那么默认TCP/IP访问协议不会打开,因此无法通过IP地址的方式访问SQL Server数据,解决办法就是启动SQL Server配置管理器,并在里面启用TCP/IP,启用后记得重新启动SQL Server服务以使设置生效。如图所示:

(4)保存对“%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml”所做的修改。
(5)重新启动 Tomcat 服务。
4.测试基于数据库的身份验证
从客户端运行前面调试好的WebForm程序(请参考:Yale CAS + .net Client 实现 SSO(3)),输入用户名“admin”、密码“123”,测试是否登录成功。如果一切配置正常,可以看到程序登录后的界面如下图:

5.进一步改善登录体验
在实际使用过程中,用户可能希望通过多种方式登录:用户名、密码;邮箱、密码;手机号、密码,如何解决多种方式登录的问题呢?在随后的部分我们将深入讨论如何解决此类问题。
(转)Yale CAS + .net Client 实现 SSO(4)的更多相关文章
- (转)Yale CAS + .net Client 实现 SSO(5)
第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 第四部分:实现基于数据库的身份验证 第五部分:扩展基于数据库的身份验证 1. ...
- (转)Yale CAS + .net Client 实现 SSO(2)
第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 1. 下载 CAS 及.NET CAS client. CAS下载地址:http://www.jasig.org/cas/download ...
- (转)Yale CAS + .net Client 实现 SSO(6)
第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 第四部分:实现基于数据库的身份验证 第五部分:扩展基于数据库的身份验证 第六 ...
- (转)Yale CAS + .net Client 实现 SSO(3)
第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 1. 下载.NET CAS client. .NET CAS Client ...
- (转)Yale CAS + .net Client 实现 SSO(1)
由于信息系统集成需要,最近研究了一下CAS.从网上找了不少资料,很多是针对Java平台的,为数不多的针对.net Client的文章往往片面的介绍某个方面,照着去做确会遇到大量的问题,特别是“重定向循 ...
- Yale CAS + .net Client 实现 SSO 的完整版
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- CAS实现单点登录SSO执行原理及部署
一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...
- CAS实现单点登录SSO执行原理探究超详细
一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...
- CAS实战のclient自定义过滤器
我们在配置cas client肯定写过如下代码: <filter> <filter-name>CASFilter</filter-name> <filter- ...
随机推荐
- QoS 测量 (目标,方法,协议)
本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed ...
- String当中的高效函数(优化)
1. indexOf()函数是一个执行速度非常快的函数,可以用其与subString()实现高效的字符串分割,比内置的要高效. 2. charAt()方法也是高效率的函数,可以用其实现高效的start ...
- UBIFS FAQ and HOWTO
转:http://www.linux-mtd.infradead.org/faq/ubifs.html UBIFS FAQ and HOWTO Table of contents How do I e ...
- 我的Blog开张啦,欢迎大家赏脸
Blog开张,以后会慢慢更新工作.学习遇到的问题,总结一些经验,观众老爷们多多支持!!! ^_^
- NET开发必备工具之-LINQPad
第一步,下载:http://www.linqpad.net/ 第二步,安装 第三步,打开LINQPad 第四步,添加链接 第五步,输入SQL Server,用户名,密码 第六步,点击OK,成功链接 第 ...
- UIView的生命周期总结
序言: loadView.viewDidLoad.viewDidAppear.initWithNibName.awakeFromNib等经常出现在UIViewController中的方法介绍. 这些方 ...
- iOS网络监测如何区分2、3、4G?
你可以在Github下载这个Demo 首先,引入系统的Reachability类,不知道怎么引入的话,在Xcode,按下shift+command+0,搜索Reachability,看到图中所选的工程 ...
- [转]SVN:This client is too old to work with working copy 的解决方案
前一段时间,我在Eclipse碰到一个SVN错误,出现的原因是我的Eclipse的SVN插件是1.6,服务器的SVN版本是1.5.4,然后我在工程目录下做了一次提交操作(不是Eclipse里),到最后 ...
- Jboss中不能正常的解析EL表达式
在写好EL表达是后发现在页面原封不动的现实成了${user.name}没有解析出来,我还以为那里出了问题,原来只要在页面添加上<%@ page isELIgnored="false&q ...
- java 解析XML文档
Java 解析XML文档 一.解析XML文档方式: 1.DOM方式:将整个XML文档读取到内存中,按照XML文件的树状结构图进行解析. 2.SAX方式:基于事件的解析,只需要加载XML中的部分数据,优 ...