【问题标题】:Difference between Token Interceptor and Token Session Interceptor?令牌拦截器和令牌会话拦截器之间的区别?
【发布时间】:2013-10-22 18:47:07
【问题描述】:

我知道这两个拦截器都是用来防止重复提交表单的吗?但他们两者之间究竟有什么区别? 哪一个比其他的更有优势?

【问题讨论】:

标签: struts2 interceptor


【解决方案1】:

tokenSession 扩展了token 拦截器,它们都用于确保每个令牌只处理一个请求。不同之处在于对无效令牌的处理。 当发现无效令牌时,token 拦截器只返回invalid.token 结果。无效令牌上的tokenSession 拦截器将尝试显示与有效令牌相同的响应。

一些用于说明tokenSession 拦截器工作流程的伪代码:

intercept() {
  if(validToken){
    storeInvocation();
    return invocation.invoke();
  }else {
    ActionInvocation storedInvocation = loadStoredInvocation();
    // ...
    return storedInvocation.getResultCode();
  }
}

【讨论】:

  • 感谢 Aleksandr 回答我的问题。正如您所说,无效令牌上的 tokenSession 拦截器将显示与有效令牌上相同的响应。您能否详细说明这一点,或者一些 UI/图片会更好地理解这一点。谢谢!
  • 看看我给出的伪代码。想象一下有两个请求,一个带有有效令牌,另一个带有无效令牌。当tokenSession 拦截器首先拦截它时,它会存储调用,当它拦截带有无效令牌的第二个请求时,它会加载该调用并向用户显示结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-24
  • 2021-11-12
  • 2020-05-12
  • 2019-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多