用跨域cookie实现sso 是比较简单的 主要用两个操作:登陆和登出
<o:p> </o:p>
登陆操作 --- SSOLoginServlet来实现
用户输入用户名密码
Sso server验证其正确性
将用户名加密后写入cookie
Cookie cookie = new Cookie(SSOConst.SSOID_KEY, ssoid);
cookie.setMaxAge(maxAge);
cookie.setDomain(".ecc.com");
cookie.setPath("/");
以上几行代码是sso的核心
cookie.setDomain(".ecc.com");这句代码可以实现所有的以.ecc.com结尾的域名都能访问这个cookie
<o:p> </o:p>
登陆操作完成 此时这个标志用户已经登陆的cookie 被写进了浏览器的cookie
<o:p> </o:p>
登出操作 ---- SSOLogoutServlet来实现
<o:p> </o:p>
客户端只要调用这个servlet就完成了用户的登出
这个servlet完成的操作就是把登陆时写的cookie 删除掉
我们只需要将这个cookie的maxAge 设置为0即可
<o:p> </o:p>
子域之间的交互
假设有两个应用A.ecc.com 和 B.ecc.com
如果我在a应用中登陆成功 那么当我切换到B的时候 B怎么能感知到用户已经登陆呢?
过滤器可以很好的解决这个问题 --- SSOFilter
<o:p> </o:p>
假如我在A中成功登陆,现在要访问B,那么可以在访问b的受保护页面的时候先经过过滤器,过滤器的功能是检查是否存在这个cookie,如果存在表示用户已经登陆,否则转到登陆页面
分享到:
- 2006-11-21 11:36
- 浏览 8214
- 评论(6)
- 论坛回复 / 浏览 (4 / 24897)
- 查看更多
相关推荐
SSO(Single Sign-On)单点登录是一种身份验证机制,允许...这个Demo为开发者提供了一个实践SSO单点登录的好起点,通过研究源代码,你可以深入了解SSO的实现细节,以及如何在Web应用中安全地使用Cookie进行身份验证。
在这个项目中,我们利用SpringBoot框架来实现基于Cookie的SSO。下面将详细解释这个项目的实现原理、流程以及涉及的关键技术。 一、SpringBoot与SSO结合 SpringBoot以其简洁的配置和强大的功能深受开发者喜爱,是...
通过研究这个DEMO,你可以深入理解SSO的工作原理,以及如何解决跨域带来的挑战。对于前端开发者,了解如何与后端协作实现SSO,以及如何处理跨域请求的JavaScript代码至关重要;而对于后端开发者,理解CAS服务器的...
### ASP.NET跨域SSO解决方案 #### 一、引言 在现代企业级应用开发中,随着业务系统越来越复杂,各个子系统之间的交互也日益频繁。为了提高用户体验并简化管理流程,单点登录(Single Sign-On,简称SSO)成为了一个...
单机模拟多台主机,跨域写cookie场景
在基于Cookie的二级域名下跨域共享SSO实现中,核心概念是利用Cookie的特性来实现用户身份的共享与传递。 首先,我们了解SSO的工作原理。当用户首次访问一个应用系统(例如,`app1.example.com`)时,如果用户尚未...
SSO系统的关键技术通常包括Cookie管理、跨域通信(CORS)、安全票据加密等。为了实现跨域,可能会利用JSON Web Tokens(JWT)或OAuth 2.0等协议。同时,为了防止CSRF攻击和保护用户隐私,还需要对HTTP请求头进行严格...
在这个“完全跨域SSO”实现中,我们将探讨如何跨越不同的域名或子域名实现SSO功能,这对于大型企业或拥有多个子网站的组织来说尤其重要。 首先,我们需要理解SSO的核心概念:票据(Ticket)。在SSO流程中,用户首次...
跨域点单登录源码SSO_cross_domain是一个用于实现单点登录(Single Sign-On, SSO)的项目,主要解决了用户在多个域名之间切换时无需重复登录的问题。在这个项目中,我们将探讨三个核心概念:跨域、点单登录以及SSO。...
为实现跨域SSO,通常采用的方式是在认证服务器设置一个共享的Cookie,或者使用JSONP、CORS等技术来绕过同源策略。 4. 示例项目WebSSOAuth与WebSSODemo: "WebSSOAuth"可能是一个包含认证逻辑的服务端项目,它负责...
2. **票据存储**:浏览器将这个票据存储在Cookie或者LocalStorage中,确保在后续的跨域请求中可以携带。 3. **跨域请求**:当用户访问另一个子域(如sub.example.com)时,浏览器会自动将主域的票据发送到该子域。 ...
2. **票据(Ticket)**:在SSO中,用户成功登录AC后,AC会生成一个唯一的票据(如:Ticket Granting Ticket, TGT),这个票据可以看作是用户身份的临时证明。当用户访问其他子系统时,只需要提供TGT即可,而不需要...
- **Cookie管理**:在跨域SSO场景中,Cookie的管理尤为重要。由于浏览器安全策略限制,不同一级或顶级域名下的站点无法相互读取对方设置的Cookie。因此,实现跨域SSO需要特别关注Cookie的写入、读取策略及其传递方式...
拥有“轻量级,分布,跨域,Cookie + Token均支持,Web + APP均支持”等特性。扩展开放源代码,开箱即用。 文献资料 通讯 产品特点 简洁:API直观简洁,可快速上手 轻量级:环境依赖小,部署与接收成本费用
这解决了Cookie跨域的问题。 2. **Session共享**:虽然各应用系统间默认不会共享Session,但可以通过多种方式实现Session的共享,如使用Spring Session等技术方案。这种方式确保了无论用户访问哪个子系统,都能够...
XXL-SSO 是一个专为此目的设计的开源框架,它提供了轻量级、分布式、跨域以及对Cookie和Token的支持,适用于Web和APP应用。 1. **轻量级**:XXL-SSO 设计简洁,易于理解和部署,降低了对系统资源的需求,使得小型到...
2. 跨域的SSO实现: 当应用系统分布在不同的顶级域名下,如site1.com和site2.com,由于浏览器的同源策略限制,不能共享Cookie,因此需要更复杂的机制。一种常见的跨域SSO实现思路如下: a. **SSO-Server**:用户...
本文将详细介绍如何在多台服务器之间实现SSO,并特别关注跨Cookie域的支持问题。 #### 二、环境搭建 ##### 系统需求 - **操作系统**:Windows XP Professional - **JDK**:需要安装JDK以便运行Java程序 - **...