基于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
转载于:https://www.cnblogs.com/volare/p/3924643.html
基于Cookie跨域的单点登录问题相关推荐
- .net 实现Cookie跨域共享,单点登录SSO
实现原理:cookie是不能跨域访问的,但是在二级域名是可以共享cookie的 概念说明:站点1=a.devin.com 站点2=b.devin.com 实现步骤:1. 配置两个站点的webcon ...
- 深入理解跨域SSO单点登录原理与技术
文章目录 1 SSO体系结构 1.1 SSO 1.2 体系结构 1.3 Token(令牌) 1.4 同域SSO原理分析 token的生成 token过期移除 认证流程 1.5 跨域SSO原理分析 分析 ...
- jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项
网站A:代码:网站a的login.html页面刷新,使用jsonp方式将信息传递给b.com的login.php中去,只需要在b.com中设置一下跨域以及接收参数,然后存到cookei即可, 注意:网 ...
- ajax请求头cookies中传递sid,跨域请求单点登录,登录成功,但是在controller中获取的cookie与浏览器中不一致,请大神指点一二。^_^...
跨域请求js代码: $.ajax({ type:"post", async:false, contentType : "application/x-www-form-ur ...
- 完全跨域的单点登录(SSO)解决方案源码解析
为什么80%的码农都做不了架构师?>>> 本文介绍的是一种PHP的开源SSO解决方案,可完全跨域,实现较简洁,源码地址:https://github.com/legalthin ...
- 绝对完全跨域统一单点登录登出
应用场景:多个系统下同属于一个用户,当用户登录了web1系统,那么访问web2,web3. . . . 时候,用户就无需再次登录.如:淘宝与天猫,登出也如此,一个系统登出,其他系统的登录也随之失效,这 ...
- Session跨域及单点登录解决方案
cookie机制 关于cookie和seesion的联系 cookie中会包含那些信息 名字,值,过期时间,路径,域 cookie会带到http请求头中发送给服务端 如果cookie没有设置过期时间的 ...
- kisso:java 基于 Cookie 的 SSO(单点登录) 中间件 kisso。
源码:https://gitee.com/baomidou/kisso 示例说明:https://blog.csdn.net/q826qq1878/article/details/76179591
- XSS跨站脚本攻击防御和Cookie,及SSO单点登录原理
XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入 ...
- cookie跨域,实现单点登录
Cookie 跨域,实现单点登录 Table title 最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现 ...
最新文章
- 图解DotNet框架系列
- Oracle trunc()函数的用法
- 剑指Offer Ⅱ 001. 整数除法(力扣剑指Offer专项突击版——整数_1)
- 插值方法——Lagrange插值公式
- MyEclipse/Eclipse中properties文件中文乱码问题解决
- JDK 8功能的可疑方面
- Ubuntu 12.04 LTS安装VMware Tools:无法找到kernel header path的问题
- kendo grid输入框验证方法
- 通过Redis的Pub/Sub实现对服务器群的监控管理
- mysql 事件状态enable_mysql事件 - wayhk的个人页面 - OSCHINA - 中文开源技术交流社区...
- 拓端tecdat|Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
- WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解
- Fiddler抓包快速入门-windows网页抓包
- svn的安装出现报错问题解决办法
- xp系统打开internet服务器,xp系统浏览器无法打开internet选项的解决方案
- 【sv】getenv 【import “DPI-C“】
- [转]Linux主机驱动与外设驱动分离思想
- Excel VBA:填充——FillDown方法
- CSS学习案例(16):网易云音乐导航栏
- Linux 多线程编程(三)
热门文章
- voronoi图代码_在Unity中实时计算Voronoi图
- 怎么画人像_画动画+耍杂技怎么玩?日本小哥串烧后居然爆火网络
- linux 程序 指定网卡,Linux socket绑定指定网卡实现负载均衡
- build.xml:391: javac doesn‘t support the “nativeheaderdir“ attribute
- 全网首发:github已经设置了令牌token,为什么还要验证用户密码
- 全网首发:ProGuard保持一个类名函数名需要加public
- 使用Rufus制作安装U盘报错,使用UltraISO成功
- LINUX doubango编译中prefix参数无效
- 编译OpenCV:cv2.cpp:23:33: fatal error: numpy/ndarrayobject.h: 没有那个文件或目录
- 解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系