2012-01-27 86 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視爲所有子域的通配符。