Struts2 如何在动作链之间正确使用令牌?

Struts2 如何在动作链之间正确使用令牌?,struts2,chaining,csrf-protection,Struts2,Chaining,Csrf Protection,我有一个行动,我应该保护它免受CSRF攻击。我使用了Strub的tokenSession拦截器来实现这一点 /jsp/customer/request/branchSelection.jsp 并且在直接从jsp调用此操作的情况下非常有效 但我也有其他操作(受保护和不受保护),在某些情况下,这些操作将链接到此操作 /jsp/login/success.jsp 展示部选举 展示部选举 展台 在这样的链条中使用代币的正确方式是什么?!i、 e.在这两种情况下,当一个未受保护的操作链接到一个

我有一个行动,我应该保护它免受CSRF攻击。我使用了Strub的tokenSession拦截器来实现这一点


/jsp/customer/request/branchSelection.jsp
并且在直接从jsp调用此操作的情况下非常有效


但我也有其他操作(受保护和不受保护),在某些情况下,这些操作将链接到此操作


/jsp/login/success.jsp
展示部选举
展示部选举
展台

在这样的链条中使用代币的正确方式是什么?!i、 e.在这两种情况下,当一个未受保护的操作链接到一个受保护的操作时,以及当一个受保护的操作链接到另一个受保护的操作时。

操作链不确定您想要什么,但经过大量维护,因此不鼓励。如果该操作的两端都没有正确结束,那么您仍然可以使用Servlet的机械化来实现所需的行为。@RomanC我添加了示例代码以消除我的需要。您仍然建议使用Servlet的机械化吗?我希望尽可能多地使用Struter的能力,而不是低级能力。非常感谢。链式动作或多或少是动作执行的结果。可以将拦截器配置为执行此操作。您最好阅读文档,了解更多关于tokenSession拦截器的信息,以了解其工作原理。@RomanC我了解tokenSession拦截器的工作原理。我甚至研究它的来源。在jsp中处理时,令牌标记在用户会话中放入一个键值,并将令牌名称和值放入表单中。当表单提交给受保护的操作时,tokenSession拦截器从发布的参数中获取令牌名称和值,并将其从会话中删除。我不明白的是,当一个受保护或不受保护的动作链接到这个受保护的动作时!i、 e.此操作可通过三种方法调用:1。直接来自jsp2。不受保护的行动3。不受保护的行动;这没关系,你必须在请求中提供一个参数,就像在jsp代码中一样,但是第二种情况和第三种情况不在你的范围之内,因此在没有必要的参数的情况下,它将无法工作。操作链不确定你想要什么,但是经过大量维护,因此不鼓励。如果该操作的两端都没有正确结束,那么您仍然可以使用Servlet的机械化来实现所需的行为。@RomanC我添加了示例代码以消除我的需要。您仍然建议使用Servlet的机械化吗?我希望尽可能多地使用Struter的能力,而不是低级能力。非常感谢。链式动作或多或少是动作执行的结果。可以将拦截器配置为执行此操作。您最好阅读文档,了解更多关于tokenSession拦截器的信息,以了解其工作原理。@RomanC我了解tokenSession拦截器的工作原理。我甚至研究它的来源。在jsp中处理时,令牌标记在用户会话中放入一个键值,并将令牌名称和值放入表单中。当表单提交给受保护的操作时,tokenSession拦截器从发布的参数中获取令牌名称和值,并将其从会话中删除。我不明白的是,当一个受保护或不受保护的动作链接到这个受保护的动作时!i、 e.此操作可通过三种方法调用:1。直接来自jsp2。不受保护的行动3。不受保护的行动;这没关系,您必须在请求中提供一个参数,就像在jsp代码中一样,但是第二种情况和第三种情况不在您的范围之内,因此在IMO中,如果没有必需的参数,它将无法工作。