Java Web表单添加token

项目架构SSM,防止表单二次提交采用token方式,怎样针对应用中的所有form添加一个token隐藏域,而不是在Controller中返回添加。

阅读 4.4k
2 个回答
新手上路,请多包涵

我能想到的麻烦一点的做法.. 定义一个Token的注解,包含两个参数:generatevalid;在请求表单的url加上@Token(genatate=true), save的url加上@Token(valid=true);然后配置一个拦截器,用于生成token及验证token。生成token时,服务端存起来这个token,同时返回客户端,提交时带上来。不过,这只能做到使用方便,全局去生成及验证token,最终也是会跟controller有些许粘连

如果表单页面是后端渲染的,那么可以在模板引擎里针对所有的form表单添加个input标签。

如果是前后端分离的页面,那前端只能通过调用接口来获取token,再添加到表单里。这样只要写个统一的获取token的接口,前端写个全局的函数自动添加token,也是挺方便的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题