提取_WL_AUTHCOOKIE_JSESSIONID cookie

时间:2014-03-25 16:51:54

标签: java cookies weblogic

我在为weblogic上部署的应用程序检索https上的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.我想知道如何使用CookieManger提取“_WL_AUTHCOOKIE_JSESSIONID”?

2:是的,如果我将此代码放在Web应用程序中并在weblogic上部署,它就会停止工作。为什么呢?

1 个答案:

答案 0 :(得分:0)

找到第二个问题的解决方案。基本上我们必须在“startWebLogic.cmd”中设置一个java选项来告诉weblogic不要使用Weblogic的httphandler,使用处理程序来自sun。 Weblogic的httphandler似乎没有使用CookieManager和CookieHandler。

我在下面设置选项。

设置JAVA_OPTIONS =%JAVA_OPTIONS %% JAVA_PROPERTIES%-DUseSunHttpHandler = true - Dwlw.iterativeDev =%iterativeDevFlag%-Dwlw.testConsole =%testConsoleFlag%-Dwlw.logErrorsToConsole =%logErrorsToConsoleFlag%

仍在寻找问题1的答案。