在 Struts 1 的查询中禁用正文参数

Disable Body Parameters in Query for Struts 1

应用程序中登录页面的常规使用使用 DynaValidatorForm,单击 'submit' 时会发出 POST 请求,其中包含用户的用户名和密码。然后在相关操作 class.

中对其进行验证和处理

服务器代码:

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 中使用参数发出 GET 请求来登录,即 www.my-site.com/LoginPage.do?loginName=username&password=password

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

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

非常感谢任何帮助!

如果是 GET

,您可以从操作中检查请求的方法和 return
if(request.getMethod().equalsIgnoreCase("GET")
    return mapping.findForward("error");