首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SSO单点登录之二:Yale CAS兑现单点登录(服务器端)

2012-09-03 
SSO单点登录之二:Yale CAS实现单点登录(服务器端)耶鲁大学开发的CAS单点登录系统在SSO中应该说是比较有名

SSO单点登录之二:Yale CAS实现单点登录(服务器端)

耶鲁大学开发的CAS单点登录系统在SSO中应该说是比较有名的啦,既然也是开源的,我们为何不拿过来学习学习呢

很早之前的耶鲁的CAS开源包地址是在:http://www.yale.edu/tp/auth/?

目前的CAS开源包都已经转移到新网址了,并且开源包里面的类名都没有以yelu开头了而是jasing

CAS客户端:http://downloads.jasig.org/cas-clients/?

CAS服务器端:http://www.jasig.org/cas/download?

我下载的都是目前最新版的cas-server-3.4.5服务器端和cas-client-3.2.0客户端

?

?CAS服务器端基础应用

1)将cas-server-3.4.zip解压到一个目录,将cas-server-3.4.5\modules\cas-server-webapp-3.4.5.war拷贝到tomcat的webapp中去,并且改名为CasServer.war.启动tomcat

2)现在可以访问CAS应用了,当然要使用HTTPS加密协议访问,例如本问用到地址:https://javacrazyer.sso.com:8443/CasServer/login,现在打开了CAS服务器的页面输入admin/admin点击登录(CAS默认的验证规则只要用户名和密码相同就通过)


SSO单点登录之二:Yale CAS兑现单点登录(服务器端)

?

所以如果你看到下面的这张图片你就成功了 ?


SSO单点登录之二:Yale CAS兑现单点登录(服务器端)
?

CAS服务器端深入应用,与数据库配置登录

?

首先打开tomcat/webapp/cas/WEB-INF/deployerConfigContext.xml文件,配置的地方如下:

?1)找到第92行处,注释掉:SimpleTestUsernamePasswordAuthenticationHandler这个验证Handler,这个是比较简单的,只是判断用户名和密码相同即可通过,这个肯定不能在实际应用中使用,弃用! ?

?2)注释掉92行后在下面添加下面的代码:

?

在文件的末尾结束之前加上如下

?

这里关于数据源配置可以参考我早前写的关于spring数据源配置方式的文章

2.2)passwordEncoder:处理密码加密

细心的朋友从最后面的代码可以看到MD5加密的类有两个实MD5PasswordEncoder就是默认我们只需把摸认类添

加上无需写其他继承类,而如果你非要继承的话,那么就写你自己的类继承自PasswordEncoder,具体可以更改encode方法

我这里就选择使用了继承的方式,我写的类如下

?

?

2.3)QueryDatabaseAuthenticationHandler是cas-server-support-jdbc提供的查询接口其中一个,QueryDatabaseAuthenticationHandler是通过配置一个 SQL 语句查出密码,与所给密码匹配?

?

2.4)sql:登录查询哪一张表

这里大家或许还有一句话可以看到<property name="sql" value="select password from t_admin_user where login_name=?" />

所以需要用到数据库脚本,数据库名称我这里起名为javacrazyer

这时你再去访问地址:https://javacrazyer.sso.com:8443/CasServer/login,输入数据库中存在的相同值的用户名密码,就能成功登陆了

?

关于CAS客户端SSO登录下一篇文章将会介绍

热点排行