当前位置: 首页 > 知识库问答 >
问题:

Spring 3.2 HTTP请求参数_ csrf在csrf筛选器之前变为空

柳韬
2023-03-14

我使用的是Spring 3.2.6和Spring Security 3.2.4,我为POST、PUT、PATCH和DELETEhtml" target="_blank">方法启用了CSRF过滤器。CSRF过滤器工作正常,但由于空CSRF令牌,它会间歇性失败,即使它作为隐藏参数存在于JSP中,如下所示。这个奇怪的问题时不时发生,然后消失,一段时间内根本没有发生,然后又开始间歇性地发生。

这是JSP中的参数;

似乎在调用CSRF过滤器之前,HTTP请求参数被置为空。

过滤器的调用顺序如下:SecurityContextPersistenceFilter、ConcurrentSessionFilter、CsrfFilter等等。。。

Tomcat版本是7.0.23

下面是我得到的错误;

org . spring framework . security . web . csrf . invalidcsrtokenexception:在请求参数' _csrf '或标头' X-csrf-TOKEN '中发现无效的CSRF标记' null '。在org . spring framework . security . web . csrf . csrffilter . dofilter internal(csrffilter . Java:100)在org . spring framework . web . filter . onceperrequestfilter . do filter(onceperrequestfilter . Java:107)在org . spring framework . security . web . filter chain$virtualfilter chain . do filter(filter chain proxy . Java:342)在org . spring framework . security . web . session . concurrentsession filter . do filter(concurrentsession filter . Java:Java

共有1个答案

东门阳飇
2023-03-14

这将是一个漫长的过程,但这种行为可以通过保留对HttpServletRequest的引用(例如在会话中存储HttpServletRequest实例)来触发,这会阻止Tomcat回收ServletRequest对象。

在不回收实例的情况下,“is parsed”标志(表示已解析查询参数)永远不会重置,导致Tomcat不会在下一个请求中处理URL,从而使您没有任何查询参数。

 类似资料:
  • 我正在使用JSF2.2,并配置了servlet过滤器。过滤器中工作的部分代码: 如果我添加第二个param-常规请求可以工作(发生重定向并看到两个param),但AJAX请求不能工作(没有重定向,什么也不发生)。以下是Firebug报告: 这是如何造成的,我们如何在filter中为AJAX调用设置多个参数?

  • 我试图在微软图形上提出请求,但我找不到答案。(https://developer.microsoft.com/fr-fr/graph/graph-explorer) 我希望获得所有不属于某个类别的邮件: 这个请求,给所有的消息与类别'oa':https://graph.microsoft.com/v1.0/me/messages?$filter=类别/任何(c: c eq'oa') 我想有相反的:

  • 介绍 我注意到我们项目中的推送过滤器都不起作用。它解释了为什么执行时间受到影响,因为它读取了数百万次,而它应该将它减少到几千次。为了调试这个问题,我编写了一个小测试,读取CSV文件,过滤内容(下推过滤器)并返回结果。 它不能与CSV一起工作,所以我尝试读取一个拼花文件。没有一个能用的。 数据 文件具有以下结构: 名词(noun的缩写)镶木地板文件有相同的结构 读取CSV文件 为了重现这个问题,我编

  • 在泽西1. x中,您可以使用对表单数据进行请求过滤,但我在泽西2. x中没有看到明显的等效项。我已经实现了接口,它让我可以访问,但是从那里如何获取表单数据呢? 泽西1. x示例: 球衣2。x示例:

  • 问题内容: 我正在尝试编写一个可以检索请求URL的过滤器,但是我不确定该怎么做。 这是我到目前为止的内容: 当我在服务器上点击页面时,唯一看到的输出是“ Url:null”。 从过滤器中给定的ServletRequest对象获取请求的URL的正确方法是什么? 问题答案: 这是您要找的东西吗? 重建: 和的信息。

  • 配置Spring Security 3.2后,csrf。令牌未绑定到请求或会话对象。 这是Spring Security配置: login.jsp文件 它呈现下一个html: 结果是403 HTTP状态: 在一些调试之后更新,请求对象以良好的形式发出DelegatingFilterProxy,但在CoyoteAdapter的469行中,它执行请求。回收();这会删除所有属性。。。 我使用JDK 1