2017-07-07 17 views
1

在应用程序中经常使用登录页面使用DynaValidatorForm,点击'submit'后会发出包含用户名和密码的POST请求。然后在相关的操作类中进行验证和处理。在查询中为Struts禁用正文参数1

Server代码:

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访问需要类似解决方案的其他页面。

任何帮助,非常感谢!

回答

1

您可以检查请求的方法,并从返回的行动,如果我们得到

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