我在服务器上有Tomcat 8,Spring 4.2和Spring Security 4.0。我尝试实施付款整合。成功完成付款流程后,使用GET http://www.example.com/p/paysera/callback?data=cHJvamVjdGlkPTIzMTY0Jm9yZGVyaWQ...
向我的服务器付款服务请求,并等待我的“确定”,但我的服务器返回Expected CSRF token not found. Has your session expired?
。但是,如果我将这个网址直接复制/粘贴到浏览器中,一切正常。
春季安全配置:
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){ ...
最佳答案
我在Spring安全配置中添加了.csrf().ignoringAntMatchers("/p/paysera/callback")
。