0

我有一个提供网站内容的 java servlet,它使用表单身份验证来登录用户并让他们访问内容。每当用户访问受保护的资源时,他都会被重定向到一个登录表单,该表单用于将用户名/密码发布到 Web 服务器中的 j_security_check 路径。其余的由生成用户会话、响应并将他重定向到他尝试访问的初始资源的 java 安全机制处理。到目前为止,一切都很好。

我想要做的是通过以下方式为未登录用户提供对资源的访问: GET www.myserver.com/anotherLoginMethod=aasdfJKL 其中 aasdfJK 是服务器生成的哈希。服务器保持与用户帐户的关联,当用户发送此 GET 请求时,我需要:

1)获取anotherLoginMethod参数值。2)检索关联的用户帐户(凭据)。3) 自动登录用户,就像他在 j_security_check 处理程序中使用他的用户名/密码进行 POST 一样。

那可能吗 ?

我尝试在过滤器中使用 HttpServletRequest 的登录和身份验证方法,但到目前为止没有成功。

4

1 回答 1

0

它相对简单。您需要决定 1. 您打算将哈希值及其与用户的关联保存在哪里?2. 你建议如何将哈希值给用户?确保安全对于此步骤至关重要。

完成此操作后,您可以编写一个可以拦截此请求的 servlet 过滤器,或者您可以在 servlet 本身中包含逻辑,获取与哈希值关联的用户,生成一个会话,就像用户已成功登录一样重定向到所需的 URL。了解与这种方法相关的安全问题很重要。

于 2012-11-29T10:29:23.657 回答