【问题标题】:Disable Body Parameters in Query for Struts 1在 Struts 1 的查询中禁用正文参数
【发布时间】:2017-07-07 21:04:12
【问题描述】:

应用程序中登录页面的常规使用使用DynaValidatorForm,在单击“提交”时会发出一个包含用户用户名和密码的 POST 请求。然后在关联的操作类中对其进行验证和处理。

服务器代码:

protected ActionForward performAction(ActionMapping mapping,
        ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {    
    DynaValidatorForm dynaForm = (DynaValidatorForm) form;
    //validation here 
    //...
    //
    Login login = new Login();
    PropertyUtils.copyProperties(login, dynaForm);
    //login object is used from here on out

但是,可以通过使用 URL 中的参数(即www.my-site.com/LoginPage.do?loginName=username&password=password)发出 GET 请求来登录

有什么方法可以禁止 Struts 在表单中使用 URL 参数?

我目前的解决方法是使用一个过滤器来检查查询字符串并重定向它是否包含应该在 POST 正文中的参数,但我正在寻找一个更优雅的解决方案。我不能只禁用 GET,因为其他一些需要类似解决方案的页面需要通过 GET 访问。

非常感谢任何帮助!

【问题讨论】:

    标签: servlets struts-1


    【解决方案1】:

    您可以检查请求的方法,如果是 GET,则从操作返回

    if(request.getMethod().equalsIgnoreCase("GET")
        return mapping.findForward("error");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 2015-02-12
      相关资源
      最近更新 更多