【问题标题】:get cookie from domain without opening this domain在不打开此域的情况下从域获取 cookie
【发布时间】:2012-01-27 18:37:17
【问题描述】:

我正在用 java 构建一些服务,但发现重定向存在一些问题。

我在 domainA 中有登录表单。登录后,我想在其他域 domainB 中设置 cookie。

现在,当我打开 domainA 一段时间后,我想检查 domainB 中是否有 Cookie sen,但我不想重定向用户domainAdomainB

有没有可能,用 JAVA 从 domainAdomainB 发送请求以检查是否有任何 Cookie?

我正在尝试:

            try {

                URL url = new URL(rURL + "checkCookie" );
                InputStream response2 = url.openStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(response2, "UTF-8"));


                for(String line; (line = reader.readLine()) != null;){
                    responsePool += line;
                }

            }catch(Exception e2){
                e2.printStackTrace();
            }

            logger.info(responsePool);

domainB 中获取 Cookie 的代码就是:

try {

        Cookie[] cookies = request.getCookies();

        for (int i = 0; i < cookies.length; i++) {
            Cookie c = cookies[i];

            if (c.getName().equals("xvz")) {
                cookieSCS = c.getValue();
            }
        }

        if(cookieSCS == null || cookieSCS == ""){
            cookieSCS = "there is no cookie";
        }

    } catch (Exception e) {

        cookieSCS = e.toString();

    }

但是我得到java.lang.NullPointerException,我知道这种方法不会给我一个cookie,但是有没有可能从domainB获取cookie而不在domainB中打开浏览器?

【问题讨论】:

    标签: java cookies


    【解决方案1】:

    我认为您无法通过这种方式读取跨域 cookie。通常,这种情况是通过在 domainA 和 domainB 的父节点上设置 cookie 来处理的(如果你有类似的东西)。

    因此,如果父级是www.example.com,并且您有两个域math.example.comsci.example.com,则应在.example.com 域上设置cookie。

    需要开头的.(点),以便将 cookie 视为所有子域的通配符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 2019-11-05
      • 2015-10-14
      • 2013-02-23
      • 1970-01-01
      • 2014-07-14
      • 2016-07-19
      相关资源
      最近更新 更多