2012-01-27 97 views
0

我在java中构建了一些服务,并且我找到了一些重定向问题。从域名获取cookie,而无需打开此域名

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

现在,当我打开DOMAINA了一段时间后,我想检查是否有饼干先生在即domainB,但我不希望从DOMAINA重定向用户即domainB

是否有可能,在JAVA从DOMAINA将请求发送到即domainB,以检查是否有饼干吗?

我与努力:

  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

回答

0

我不认为你可以通过这种方式阅读跨域cookie。通常情况下,通过在domainA和domainB的父级上设置cookie来处理这种情况(如果您有类似的情况)。

因此,如果父项为www.example.com并且您有两个域math.example.comsci.example.com,则应在.example.com域中设置Cookie。

需要在开始处使用.(点),以便将Cookie视为所有子域的通配符。