原有项目A里面需要加入一个B系统,要求从A系统登陆之后进入B系统,不需要再次重新登陆。上面给出的整合工期是10天。
整合问题:
1.实现单点登陆
2.A,B系统用户数据同步
首先我们解决单点登陆的问题,基于系统本身,这里有3个备选方案
a.cas
扩展性很好,需要独立部署一个中央认证系统.增加一个潜在的单点故障.
同时cas如何与a,b系统集成。另外cas用户认证的接口需要进行二次开发。
b.利用Cookie
不能用IP进行访问。必须要解决跨域问题(我们的项目目前在同一个域名下面,这点可以省略)。客户端必需启用COOKIE。
c.基于Spring Security 2.0,
提供自己的SSOAuthenticationFilter. 负责跨系统用户认证.在用户通过验证后保存Ticket.跨系统时B系统用同样的SSOAuthenticationFilter实现来检验用户提供的Ticket。
但在我们的B系统中没有Spring Security,这就需要在b系统中增加Spring Security。
所以我采用了一个折衷的方案:在A系统中提供自己的SSOAuthenticationFilter,把用户名和密码保存在cookie里(加密)。修改b系统本身的过滤器,当用户session里取不到值的时候,去cookie里查找。
<bean id="loginFilter" class="com.xxx.web.filter.SSOAuthenticationFilter">
<s:custom-filter before="AUTHENTICATION_PROCESSING_FILTER" />
<property name="authenticationManager" ref="authenticationManager"/>
</bean>
public static void setCookie(HttpServletRequest request,
HttpServletResponse response, String var, String value, int life) {
Cookie cookie = new Cookie(var, value);//var cookie名
//cookie.setDomain(".google.com");
cookie.setPath("/");
cookie.setMaxAge(life);//当life的值为-1时,关闭浏览器后,cookie立即失效
cookie.setSecure(request.getServerPort() == 443 ? true : false);
response.addCookie(cookie);
}
注意:cookie.setDomain写上你的域名,在本地测试的时候,这里注释掉,而不要写localhost。取cookie值的时候,相同道理。不然无法取值。
如何查看cookie是否产生?值?
推荐:firefox插件Web Developer
另外如果你想实现 Spring Security 2.0 + CAS 配置单点登录
参考这里
http://dakulaliu.iteye.com/blog/259721
我在自己本机上,测试成功。
A,B系统用户数据同步 问题,将在下一篇文章中给出。
分享到:
相关推荐
第三方系统单点登陆到NC65,单点到UClient端,打开首页
基于springmvc+maven+webservce+memecached 单点登陆实现,实现完全跨域、单点退出
单点登陆,实现同账户登陆,会把上一个给挤掉代码,上一个操作时会给出挤掉的提示消息
单点登陆的js实现是完成模拟单点登录任务
为了适用现代企业的系统整合适用,很多企业会使用SSO单点登陆,统一管理企业用户。在此背景下,基于windchill的认证重构,实现单点登陆,借此文章与大家分享。此次使用的认证系统是windchill 10.2, 实现方式在...
SSO单点登陆SSO单点登陆SSO单点登陆
CAS单点登陆资料CAS单点登陆资料包括配置步骤及JAR
单点登陆 用于ssos服务调取 统一进行登陆额参考文档 单点登陆 用于ssos服务调取 统一进行登陆额参考文档
myEclipse下含源码,在struts2下集成cas实现单点登陆的例子,例子虽然简单,基本上反映出cas的工作原理!
一个实现SSO方案的构想SSO单点登陆解决方案
cas单点登陆服务端war包,关于使用说明也包含在内,快速构建单点登陆系统
用户单点登陆平台SSO,将所有的系统完成单点登陆平台的对接,无前后端分离,纯python后台,所有权限保存在redis服务器中
单点登陆,Yale CAS
PHP版单点登陆实现方案 php实现 PHP版单点登陆实现方案
单点登陆设计原理,介绍单点登陆(SSO)常见的方式,
北京选择软件公司张昀整理。 从整个单点登陆的方案着手,讲述了单点登陆的服务器构成、涉及到的技术、如何实现单点登陆。适合对单点登陆没多少概念的人员。
JEECG BPM 单点登录说明文档(kisso集成),已经在项目中使用。
基于CAS X5做的单点登陆研究成果文档。能实现X5与其它系统的单点登陆。
实现单点登录功能
SSO单点登陆源代码用户控件,部署再moss中,可以实现单点登陆