原有项目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系统用户数据同步 问题,将在下一篇文章中给出。
分享到:
相关推荐
- 此方法适用于因近期系统更改引发的问题。 3. **方法三:注册表编辑** - 开机按F8键进入“修复计算机”模式下的命令提示符。 - 使用`regload`命令加载离线注册表。 - 通过注册表编辑器找到无法登录用户的SID,...
【标题】"八年级历史下册第一单元第5课八国联军侵华战争同步练习冀教版.rar",这是一份针对初中八年级历史课程的资料,具体为下册第一单元第五课的教学辅助材料,内容聚焦于中国近代史中的八国联军侵华战争。...
13. **台风路径与影响**:第17、18题,台风“珍珠”的形成和登陆,不仅影响登陆地,还可能引发风暴潮、暴雨等次生灾害,对沿海地区产生重大影响。 这些知识点都是高中地理学习的重点内容,涵盖天文、气象、地理环境...
4、修正M2出现[Exception] TUserEngine::ProcessHumans Human.Operate Code:18 报错而引发的问题 [2011-06-16] 1、增加战骑系统(战骑说明文件) 2、修正脚本命令GUILDBUILDPOINT改变行会建设值只加不减问题 3、过滤...
在IT行业中,创建一个弹出登录框是常见的需求,尤其对于网站或应用程序来说,它能够为用户提供方便快捷的登录方式。本示例聚焦于“百度弹出登录框”,这是一个具有锁定下层功能的交互设计,旨在提高用户体验。下面将...
总的来说,克里米亚战争是俄国历史上的一个转折点,它不仅暴露了俄国军事和社会的落后,也成为了俄国农奴制改革的催化剂。这场战争及其后续的改革,标志着俄国从封建社会向近代化国家转变的开端。
具备强大流量引导能力和资本支持的直播平台在这一阶段表现出更强的竞争力,而独立的答题APP则面临挑战,需要寻找突破点。 【盈利模式分析】: 当前,直播答题通过低额奖金吸引大量用户,单个用户的获取成本相对较低...
**问题**:循环参照会导致设计过程复杂化,并可能引发技术问题,如生成*.crc文件等。 **解决方案**: 1. **避免双向参考**:建议创建单向参考关系,即只允许一个方向的引用,比如始终由B向A借用参考。 2. **使用...
教学设计包括导入环节,如通过《日本投降仪式图》引发思考,讨论法西斯国家早期得手的原因,分析国际反法西斯联盟的建立及其意义,介绍重要战役如斯大林格勒保卫战、诺曼底登陆,以及雅尔塔会议等关键历史事件。...
【掌讯通、西软】基础实操是针对酒店行业管理软件的操作教程,涉及了多个关键功能点。本文将详细解析这些操作步骤,以便于理解和应用。 一、西软维护模块 工号新建/停用是在XMS系统中进行的,用于创建或停用员工的...
- **更新驱动**:有些美化工具可能需要更新系统驱动,确保所有驱动程序都是最新且稳定的,以免引发其他问题。 总的来说,"XP美化小工具.rar"是一个帮助Windows XP用户改善系统视觉体验的集合,通过这些小工具,用户...
3. 战争扩大:第二次世界大战规模扩大的标志性事件包括德国侵略苏联和日本偷袭美国珍珠港,这两个事件分别在欧洲和亚洲引发了大规模冲突。 4. 美国参战:美国参战的直接原因是日本在1941年12月偷袭珍珠港,这一事件...
2. **海啸**:海啸是一种由海底地震、海底火山喷发、水下塌陷或滑坡等引起的自然灾害,它以巨浪形式对海岸线造成破坏。A.海底地震是引发海啸的常见原因,而海啸波在大洋中传播时能量衰减很少,使得它们能在远距离外...
4. **系统设置与登陆**:在第1.1部分,用户需要了解如何登录系统以及如何进行基本的系统设置,这通常包括账户信息、权限配置、系统参数设定等,是开始使用系统的第一步。 5. **管理端操作**:这部分详述了如何使用...
深信服提供了多种认证方式,如用户名密码、IP/MAC绑定、域认证、POP3认证、Radius认证、DKEY认证以及单点登录。 3. **访问控制**: - 这一功能有助于规范员工的网络行为,提升网络资源利用率和工作效率。访问控制...
【知识点详解】 1. 自然灾害的类型与成因: - 洪涝灾害:主要发生在地势低洼、排水不畅且水系发达的地区。如凤阳所在的淮河沿岸,由于季风气候降水变率大,加上植被破坏,导致洪水频发,尤其是在6、7月雨季。 - ...
- 爱国者导弹防御系统事故:系统时钟误差积累引发的问题。 - 迪斯尼的《狮子王》兼容性问题:特定环境下无法正常播放。 - 冲击波计算机病毒:利用软件漏洞进行传播。 - Windows2000安全漏洞:操作系统中存在的...
【知识点详解】 本课主要讲述了世界反法西斯战争中重要的历史事件,特别是世界反法西斯同盟的形成以及战争的转折点。 1. **世界反法西斯同盟的形成**: - 时间与地点:1942年1月,中、苏、美、英等26国代表在美国...
- 诗歌通过提问(最早的鱼儿、鸟儿、登陆的鱼儿、最早的树儿)引发读者对生命演变的好奇心。 - "化石"被赋予了讲故事的能力,揭示了生物进化的秘密,反驳了创造论的观点,强调自然选择和进化的过程。 - "肉身虽...
1944年6月6日,盟军在诺曼底登陆,可能预示着战争的转折点。安妮对此充满希望,认为解放可能不再是遥不可及的梦想。这股希望给予了她和同伴们继续坚持下去的勇气。 总的来说,《安妮日记》展示了二战时期普通人如何...