恕我直言,没有什么是开箱即用的。在你的情况下,我会做的是,例如,有一个URL的层次结构,植根于该层次结构将免除csrf。它易于配置。在 XML 配置中,您有一个包含 的普通块,只需复制它并像这样修改第一个块/api
<http>
<csrf/>
<http pattern="/api/**">
...
<!-- csrf -->
</http>
因为它是第一个,它将被触发到不使用csrf的任何分层请求,所有其他请求都将使用它。/api
在应用程序的正常部分中,您永远不会使用 url,而是将其保留给非浏览器用法。/api/**
然后在控制器中,将它们映射到其正常 URL 和以下位置的副本:/api
@Controller
@RequestMapping({ "/rootcontrollerurl", "/api/rootcontrollerurl"})
class XController {
@RequestMapping(value = "/request_part_url", ...)
public ModelAndView method() {
...
}
}
(当然,可能是空白的...)rootcontrollerurl
request_part_url
但是,您必须分析允许非 csrf 控制的请求的安全隐患,并最终从层次结构中排除控制器。/api