我的项目是struts1.2。是否有任何在struts1.2中实现Token拦截器(struts2)? 我知道它可以通过使用
来实现saveToken(HttpServletRequest req)
isTokenValid(HttpServletRequest req)
resetToken(HttpServletRequest req)
但我不想在每一个动作中添加上述内容。
答案 0 :(得分:2)
我知道struts2但不知道struts1(因此这些解决方案从这个角度进行攻击,struts1人可能会对这个问题有一个更漂亮的解决方案):
1)添加Spring(如果还没有)...使用AOP添加这些方法。 [费用:可能学习新技术]
2)在Struts1旁边使用Struts2将.action转换为struts2和.do转换为struts1 ...创建一个struts2包,可能称为“token”,可能通过适当的动作映射到/ token,使用通配符来捕获你扔的东西在...它转发到struts1的行动。 PS :你问过它是如何完成的......这远非漂亮,我不会这样做。 [成本:使映射逻辑复杂化]
3)将所有内容转换为struts2并使用令牌拦截器。 [费用:高额投资]
4)创建一个新的基本动作类,您的动作将扩展,实现这些方法。
答案 1 :(得分:1)
Struts 1上不存在拦截器,可以使用servlet过滤器。但是要注意不要在HTTP GET请求上控制令牌,以免拒绝所有请求。
Servlet Filters and Event Listeners
所有请求上的saveToken()和POST请求中的isTokenValid()resetToken()。
答案 2 :(得分:0)
如果你想在Struts 2中使用TokenInterceptor,你必须引用tokenSession拦截器。
在特定的操作中,必须在struts.xml中处理name =“invalid.token”的结果
在您必须编写的页面上从中生成操作的页面:标题