2014-03-25 23 views
0

我在通過https爲weblogic上部署的應用程序檢索cookie時遇到問題。我使用下面的代碼。這裏提取_WL_AUTHCOOKIE_JSESSIONID Cookie

HttpURLConnection huc3= (HttpURLConnection) new URL(url1).openConnection(); 
huc3.setRequestMethod("POST"); 
BufferedReader in = new BufferedReader(
    new InputStreamReader(huc1.getInputStream())); 

huc3.setDoOutput(true); 
DataOutputStream wr3 = new DataOutputStream(huc3.getOutputStream()); 
wr3.writeBytes("Username=abc&password=xyz"); 
wr3.flush(); 
wr3.close(); 

String thirdCookie = huc3.getHeaderField("Set-Cookie"); 

問題是,我能夠檢索「JSESSIONID」,但我不能夠檢索「_WL_AUTHCOOKIE_JSESSIONID」。這是安全的cookie,並需要進行後續的認證通話。

我在weblogic上部署的應用程序沒有啓用https,那麼只有身份驗證纔會生成JSESSIONID,並且工作正常。

但是,在HTTPS上它會生成另一個cookie,我無法再檢索。

如果我使用cookie管理器和做一個獨立的應用程序

CookieManager cookieManager = new CookieManager(); 
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); 
CookieHandler.setDefault(cookieManager); 

它工作正常。但我有以下問題:

1.我想知道如何提取「_WL_AUTHCOOKIE_JSESSIONID」與出使用CookieManger?

2:是的,如果我把這段代碼放在web應用程序中並部署在weblogic上,它就停止工作。爲什麼?

回答

0

找到第二個問題的解決方案。基本上我們必須在「startWebLogic.cmd」中設置一個java選項來告訴weblogic不要使用Weblogic的httphandler,使用sun處理程序。 Weblogic的httphandler似乎沒有使用CookieManager和CookieHandler。

我在下面的選項設置。

集JAVA_OPTIONS =%JAVA_OPTIONS%%JAVA_PROPERTIES%-DUseSunHttpHandler =真 - Dwlw.iterativeDev =%iterativeDevFlag%-Dwlw.testConsole =%testConsoleFlag%-Dwlw.logErrorsToConsole =%logErrorsToConsoleFlag%

還在尋找答案的問題1.