gpt4 book ai didi

java - 拒绝 j_security_check 上的 GET 方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:43:28 26 4
gpt4 key购买 nike

有没有办法只允许 POST 请求到 j_security_check?我想拒绝 GET。我正在使用基于表单的安全性并且只允许 Posts 到 j_security_check。如果通过 GET 发出登录请求,则应拒绝该请求。

最佳答案

由于使用 GET 方法的 JAAS 的安全问题,我一直试图在 JBOSS(Tomcat)服务器上做同样的事情,我尝试了各种方法。

  1. 在 url 模式/j_security_check 上使用 web.xml 安全约束以仅使用 POST - 这不适用于 JAAS 机制,因为它适用于普通 servlet。

  2. 将登录详细信息从登录页面传递到检查请求方法的中间 servlet,如果不是 GET,则转发到 j_security_check。 - 这没有用,而且过于复杂。

  3. 创建一个过滤器来检查请求方法并只调用 POST 消息到 j_security_check - 这不起作用,因为 JAAS 在 Web 容器中更深并且在过滤器机制之前被调用。

  4. 创建一个在 JAAS 之前调用的 Valve。

通过在调用方法中添加以下内容:

HttpServletRequest req = (HttpServletRequest) request;
if (req.getMethod().equals("GET")) {
log.warn("Someone is trying to use a GET method to login!!");
request.getRequestDispatcher("/login.jsp").forward(req, response);
throw new ServletException("Using a GET method on security check!");
}

这确实有效。

关于java - 拒绝 j_security_check 上的 GET 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3312125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com