zoukankan      html  css  js  c++  java
  • 基于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

     
     
  • 相关阅读:
    javaweb学习2
    javaweb学习1
    Java学习17
    python 正则表达式
    python 常用库
    python 常用内置函数
    python 函数高级功能
    python 正则表达式findall
    tcpdump
    安卓软件学习进度_1
  • 原文地址:https://www.cnblogs.com/volare/p/3924643.html
Copyright © 2011-2022 走看看