基于Cookie跨域的单点登录问题
由于项目中,需要用的单点登录,主要的思路是:系统1:用户名密码-->写入Cookie-->其他系统读取Cookie。
1、在同一个服务器下的Cookie共享
@Component("userLoginAction")
@Namespace("/userLogin")
@ParentPackage("json-default")
public class UserLoginAction extends ActionSupport{
@Action(value="saveCookie",results={
@Result(name=SUCCESS,location="/WEB-INF/page/success.ftl")
})
public String saveCookie(){
Cookie cook=new Cookie("userName","lisi");
cook.setPath("/");
cook.setMaxAge(-1);
ServletActionContext.getResponse().addCookie(cook);
return SUCCESS;
}
}
cook.setPath("/");设置在同一个webapp下
cook.setMaxAge(-1);设置关闭浏览器后清除Cookie。 2、跨域Cookie共享,首先这里说的Cookie跨域不是跨多域,而是跨子域。
在host文件中设置本地域名。
package cn.action; import javax.servlet.ServletContext;
import javax.servlet.http.Cookie; import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.stereotype.Component; import com.opensymphony.xwork2.ActionSupport; @Component("userLoginAction")
@Namespace("/userLogin")
@ParentPackage("json-default")
public class UserLoginAction extends ActionSupport{
@Action(value="saveCookie",results={
@Result(name=SUCCESS,location="/WEB-INF/page/success.ftl")
})
public String saveCookie(){
Cookie cook=new Cookie("userName","lisi");
cook.setPath("/");
cook.setMaxAge(-1);
cook.setDomain(".demo.com");
ServletActionContext.getResponse().addCookie(cook);
return SUCCESS;
}
}
cook.setDomain(".demo.com");设置的共享子域名 .demo.com
就ok了。在浏览器中可以查看到该Cookie

基于Cookie跨域的单点登录问题的更多相关文章
- 可跨域的单点登录(SSO)实现方案
可跨域的单点登录(SSO)实现方案 SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源( ...
- 跨域分布式系统单点登录的实现(CAS单点登录)
1. 概述 上一次我们聊了一下<使用Redis实现分布式会话>,原理就是使用 客户端Cookie + Redis 的方式来验证用户是否登录. 如果分布式系统中,只是对Tomcat做了负载均 ...
- 深入理解跨域SSO(单点登录)原理与技术
一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...
- 深入理解跨域SSO单点登录原理与技术
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 一:SSO体系结 ...
- jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项
网站A:代码:网站a的login.html页面刷新,使用jsonp方式将信息传递给b.com的login.php中去,只需要在b.com中设置一下跨域以及接收参数,然后存到cookei即可, 注意:网 ...
- 可跨域的单点登录(SSO)实现方案【附.net代码】
SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前session是否 ...
- 【分布式系列】session跨域及单点登录解决方案
Cookie机制 Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息. ...
- [转] 可跨域的单点登录(SSO)实现方案
SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前session是否 ...
- 同顶级域名下 通过Cookie 跨域实现单点登陆
Cookie对于web开发者而言真是一个小甜饼,因为它保留了用户的登录状态.但是当登陆站点在不同域名时就会出现问题了. 在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名. ...
随机推荐
- Nubiers to follow
VGG Andrea Vedaldi Berkeley Trevor Darrell Jeff Donahue Ross Girshick Sergio Guadarrama Stanford And ...
- Response 关于浏览器header的方法
Response.AddHeader Response.AddHeader使用实例 1.文件下载,指定默认名 Response.AddHeader("content-type" ...
- HTML5 JavaScript 文件上传
function fileUpload(targetUrl) { // 隐藏表单名称 var inputName = '_fileselect'; // 文件尺寸 this.fileSize = 0; ...
- ubuntu 安装openproj-1.4-2.noarch.rpm
一 openproj是rpm包,ubuntu下需要转成deb安装.具体步骤1:下载:http://sourceforge.net/projects/openproj/2:安装alien sudo ap ...
- NOI十连测 第四测 T2
思路:线段树套可持久化treap,可持久化treap我还是第一次听说.. 改题的时候没看数据范围..乱开数组T_T #include<algorithm> #include<cstd ...
- C# Url编码 HtmlUrl编码
今天看了Artwl的一片关于编码的文章,感觉写的非常好,而且人家那博客园的样式都比哥的好看得多,一幕了然,尤其是那黑色背景的H1,妈个B了,哥太喜欢了.既然如果,就来就着它的文章跟样式,顺便来总结一下 ...
- python处理.seq文件
# Deal with .seq format for video sequence # Author: Kaij # The .seq file is combined with images, # ...
- RTP 包格式 详细解析
H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: +---------------+ |0|1|2|3|4|5|6|7 ...
- 一 VC2008环境中ICE的配置
VC2008环境中ICE的配置 ICE 3.4.0的下载页面 http://www.zeroc.com/download_3_4_0.html 环境变量配置 1.Ice-3.4.0安装到c:\Ice ...
- The Java™ Tutorials下载地址
1.The Java™ Tutorials下载地址: http://www.oracle.com/technetwork/java/javase/java-tutorial-downloads-200 ...
