2017-07-07 16 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");