我有一个表单,提交该表单时,我想使当前会话无效,创建一个新会话,然后重新显示相同的表单。
问题是,在使会话无效之后,我的页面会引发错误“会话已无效”
java.lang.IllegalStateException: getAttribute: Session already invalidated
at grails.web.servlet.mvc.GrailsHttpSession.getAttribute(GrailsHttpSession.java:45)
at org.grails.web.servlet.mvc.SynchronizerTokensHolder.store(SynchronizerTokensHolder.groovy:83)
at org.grails.plugins.web.taglib.FormTagLib$_closure9.doCall(FormTagLib.groovy:443)
at org.grails.gsp.GroovyPage.invokeTagLibClosure(GroovyPage.java:446)
at org.grails.gsp.GroovyPage.invokeTag(GroovyPage.java:364)
从上面的部分堆栈跟踪中可以看到,grails FormTagLib.groovy是问题的一部分。我曾经想过自己添加csrf字段,但希望有更好的解决方案。
我需要在此表单上具有csrf保护,如何解决此问题?