【问题标题】:Spring security 'Expected CSRF token not found...' after payments callback付款回调后 Spring 安全性“未找到预期的 CSRF 令牌...”
【发布时间】:2015-12-10 23:26:17
【问题描述】:

我在服务器上有 Tomcat 8、Spring 4.2 和 Spring security 4.0。我尝试实施支付集成。成功付款后,使用 GET 向我的服务器请求付款服务到 http://www.example.com/p/paysera/callback?data=cHJvamVjdGlkPTIzMTY0Jm9yZGVyaWQ... 并等待我的“OK”,但我的服务器返回 Expected CSRF token not found. Has your session expired?。但如果我将此网址直接复制/粘贴到浏览器,一切正常。

Spring 安全配置:

    http
    .httpBasic()
    .and()
    .authorizeRequests()
    .antMatchers(..,"/p/**",..).permitAll()
    .anyRequest().authenticated().and()
    .csrf().csrfTokenRepository(csrfTokenRepository()).and()
    .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class);

控制器:

...
@RequestMapping(value = "/p/paysera/callback", method = RequestMethod.GET)
public @ResponseBody String paysera_callback(@RequestParam("data") String data,@RequestParam("ss1") String ss1){ ...

【问题讨论】:

  • 您是否在 JSP 代码中添加了 CSRF 令牌。
  • 我的控制器返回字符串不使用jsp
  • GET 不应导致 CSRF 错误。您确定付款服务执行的是 GET 而不是 POST?
  • 但我不是在说你的控制器……你没看吗?
  • #holmis83 是的,支付服务执行 GET。我尝试将控制器更改为 POST ,但出现了一些错误。 #我们是博格,如果不是关于控制器,你正在谈论什么?

标签: java spring spring-security


【解决方案1】:

我在 Spring 安全配置中添加了 .csrf().ignoringAntMatchers("/p/paysera/callback")

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 1970-01-01
    • 2015-12-10
    • 2016-05-24
    • 1970-01-01
    • 2015-10-21
    • 2016-03-13
    • 2015-11-22
    • 2015-08-17
    相关资源
    最近更新 更多