【发布时间】:2017-11-28 20:10:45
【问题描述】:
我有我的电子商务网站并处理第三方支付供应商集成。我向他们发送了一个 URL,他们正在向它返回一个 POST 请求。问题是我收到 403-bad 或 Missing CSRF Token 错误。 传入的请求如下:
Request URL:https://mavi.local:9002/checkout/callback/secure3d?CSRFToken=425cc3ee-df74-482a-955b-c7836abff410&responseCode=0000&token=D7ED3EBA21864253AD7AA33AABB492C7FA90DDEBD7AD448D1210EF85814E077505BC8E58E1F29AC2153E600678E6545A2D87FAACF516AC3249F7D8572EA767835C89F1E370C01532F0DCCABF8ACCC7F215AE838E9B917204F1C362140E6F5E87
Request Method:POST
Status Code:403 Forbidden
Remote Address:127.0.0.1:9002
Referrer Policy:no-referrer-when-downgrade
发起者是:
test.masterpassturkiye.com/RedirectServer/MMIUIMasterPass_V2/s3d/bank/success?RRN=500007047967:7
我正在尝试将此 url 添加为我的 Spring 配置中允许的跨域请求。 我已经尝试了 2 个选项。
-
更新 project.properties 中的 csrf.allowed.url.patterns 设置如下:
csrf.allowed.url.patterns=/.*callback|.masterpass|[^/]+(/[^?])+(sop/response)$,/[^/ ]+(/[^?])+(merchant_callback)$,/[^/]+(/[^?])+(跳/响应)$,/[^/]+( /[^?])+(语言)$,/[^/]+(/[^?])+(货币)$
这个正则表达式使用 url 但不是整个 URL,我认为这可能是一个问题,但我不确定。
- 将以下项目插入到我的 spring-mvc-config.xml 中
<util:list id="csrfAllowedUrlPatternsList" value-type="java.lang.String" >
<value>.*masterpass</value>
</util:list>
我从这个blog post采用了这个解决方案
但 403 错误的问题仍然存在。我的配置可能有什么问题?任何帮助或想法都会有很大帮助。
【问题讨论】:
标签: spring-mvc csrf http-status-code-403 hybris csrf-protection