我的項目在struts1.2中。有沒有在struts1.2中實現令牌攔截器(struts2)? 我知道它可以通過使用struts中的令牌攔截器1.2
saveToken(HttpServletRequest req)
isTokenValid(HttpServletRequest req)
resetToken(HttpServletRequest req)
來實現,但我不希望在每一個動作在上面添加。
我的項目在struts1.2中。有沒有在struts1.2中實現令牌攔截器(struts2)? 我知道它可以通過使用struts中的令牌攔截器1.2
saveToken(HttpServletRequest req)
isTokenValid(HttpServletRequest req)
resetToken(HttpServletRequest req)
來實現,但我不希望在每一個動作在上面添加。
我知道Struts2的但不是struts1中(所以,從這個角度這些解決方案的攻擊,一個struts1中的人可能有關於一個更漂亮的解決了這個問題):
1)加春(如果它不存在已經)...使用AOP添加這些方法。 [成本:可能學習一項新技術]
2)在Struts1映射.action到struts2和.do到struts1上使用Struts2 ...創建一個可能被稱爲「token」並可能映射到/ token的struts2包採用通配符來捕捉你曾經投擲過的東西......這將轉向struts1的行動。 PS:你問過它是如何完成的......這遠非漂亮,我不會這樣做。 [成本:映射邏輯複雜]
3)將所有內容轉換爲struts2並使用令牌攔截器。 [成本:高時間投入]
4)創建一個新的基本動作類,您的動作將擴展,實現這些方法。
如果你想在Struts 2中使用TokenInterceptor,你必須引用tokenSession攔截器。
必須在struts.xml中通過名稱=「invalid.token」在特定操作中處理結果。
您在該頁面上生成動作的頁面必須寫入s:標頭中的令牌標記
攔截器在Struts 1上不存在,可以使用servlet過濾器。但請注意,不要控制HTTP GET請求上的令牌,以免拒絕所有請求。
Servlet Filters and Event Listeners
saveToken()對POST請求的所有請求和isTokenValid()resetToken()。
感謝Quaternion,因爲我曾經用過春天我想用第一種解決方案 – Vipul 2012-04-03 17:50:02