【问题标题】:Java Servlet security manual authenticating a request server-sideJava Servlet 安全手册验证请求服务器端
【发布时间】:2012-11-17 09:24:33
【问题描述】:

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

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

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

这可能吗?

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

【问题讨论】:

    标签: java security authentication servlets


    【解决方案1】:

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

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

    【讨论】:

    • 听起来像是一种方法。我的会话虽然有多个属性,但如果我按照这种方式,我需要手动设置。其中一些来自我正在使用的过滤器(例如 Jetty 的 DoSFilter 使用会话来跟踪状态)。此外,每个供应商 Servlet 实现是否以不同的方式处理 Session 属性?因为我对必须为 HttpSession 设置哪些属性来模拟 Java 安全机制的作用感到有些困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    相关资源
    最近更新 更多