【发布时间】:2011-10-21 16:27:59
【问题描述】:
我想开发一个能够通过 HTTP 协议在其他服务器上进行身份验证的 java servlet。该服务器向我的 servlet 发送回一个 cookie,我想将该 cookie 转发回浏览器并将浏览器重定向到另一个 url。
我不知道如何通过 servlet 拦截和发送 cookie。
您对要使用的方法或类有什么建议吗?
【问题讨论】:
我想开发一个能够通过 HTTP 协议在其他服务器上进行身份验证的 java servlet。该服务器向我的 servlet 发送回一个 cookie,我想将该 cookie 转发回浏览器并将浏览器重定向到另一个 url。
我不知道如何通过 servlet 拦截和发送 cookie。
您对要使用的方法或类有什么建议吗?
【问题讨论】:
这当然是非法的;篡改另一个域的 cookie。
Java 对 Open-ID 有很好的支持,这可能恰好在您的情况下可用。
在 java 站点的情况下,会话 ID 可以用作 cookie 和 URL 参数(通常是 JSESSIONID)。在这种情况下,您可以使用 JSESSIONID 参数。
通常一个站点有一个登录并继续到某个页面(类似于 login.html?url=...)。 在这种情况下,您可以尝试重定向到登录表单 GET-submit。 要查找该 URL:调用已注销的书签 URL。
虽然我有些怀疑是否存在这样的漏洞。
【讨论】:
我没听懂你所说的“拦截 cookie”,但是发回 cookie 非常简单,只需将 cookie 添加到响应对象即可。
Cookie cookie = new Cookie("name", value);
response.addCookie(cookie);
然后转发您的请求:
request.getRequestDispatcher(path).forward(request, response)
希望对你有帮助。
【讨论】: