(转)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- ...
随机推荐
- TP复习13
## ThinkPHP 3.1.2 模板的使用技巧#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.模板包含 <include file=&quo ...
- TP复习9
配置文件 'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次'TMPL_DETECT ...
- python 列表函数(转)
list函数: 功能:将字符创转化为列表,例: 列表基本函数: 1.元素赋值,例: 注意:通过list[0]= 'hel',如果原来位置上有值,会覆盖掉原来的. 2.分片操作 1)显示序列,例: 注意 ...
- Java HttpClient使用小结
httpclient是apache的一个项目:http://hc.apache.org/ 文档比較完好:http://hc.apache.org/httpcomponents-client-ga/tu ...
- C语言中的函数
C语言中的函数 目录 概述——对函数的理解 C语言中函数的定义和声明 函数允许的参数类型 函数允许的返回类型 递归 概述 由于有些代码段在编写程序的时候经常会用到,此时我们为了减少代码文件的长度和增加 ...
- php常用代码(一)
一:获取上个小时 方法1:date("H",strtotime("-1 hours"); 方法2:date('H',time()-60*60); 方法3:ech ...
- 【如何快速的开发一个完整的 iOS 直播 app】(美颜篇)
来源:袁峥Seemygo 链接:http://www.jianshu.com/p/4646894245ba 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播 ...
- C#基础--局部类型Partial
局部类型 原本来在同一个命名(namespace)空间下 是不允许相同的类(class)名存在的 但是partial关键字可以允许在同一个namespace下有想通过的类名存在 写法 下面的两个不 ...
- EF——继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子 05 (转)
EF里的继承映射关系TPH.TPT和TPC的讲解以及一些具体的例子 本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF ...
- [Javascript] “||”和“&&”的灵活运用
引用URL : http://my249645546.iteye.com/blog/1553202 你是否看到过这样的代码:a=a||""; 可能javascript初学者会对此感 ...