通过Java进行HTTPS身份验证和Cookie

时间:2010-01-15 14:32:06

标签: java authentication networking https

我正在尝试通过Java编程从HTTPS URL登录和检索状态信息。我通过/login.cgi登录,提供用户名和密码以及对该脚本的POST请求。

然后,脚本验证凭据并创建特定的cookie(包含会话信息,用户名等),然后立即将位置响应头调用到/home.cgi。我猜,/ home.cgi脚本在继续加载之前会验证cookie信息。否则,它只是恢复到/login.cgi页面。

由于浏览器正确处理cookie /会话的方式,所有这一切在浏览器中都能正常工作。但是,在Java中,这非常棘手,因为我无法将相应的cookie作为请求发送到后续页面。我无法获得正确的cookie,因为我无法在/login.cgi之间获取HTTP响应(其中包含正确的“Set-cookie”值),创建特定cookie并调用Location /home.cgi.

我是否缺少某些东西,或者Java是否有更好的方式来处理类似于浏览器的cookie? (有饼干店等吗?)

感谢您的帮助,

史蒂夫

2 个答案:

答案 0 :(得分:4)

默认情况下,Java.net HTTP API中未启用Cookie管理。如果您不需要任何特定处理或跨应用程序cookie持久性(当您的应用程序终止时将删除cookie),您可以使用

简单地启用它。
CookieHandler.setDefault(new CookieManager());

答案 1 :(得分:1)

您如何建立HTTP连接和管理Cookie?

我建议您只使用commons-httpclient而不是自己管理。它会automatically manage cookies给你。