springdoc-openapi swagger-ui 中的 CSRF 支持

sta*_*man 8 csrf swagger-ui spring-boot springdoc springdoc-openapi-ui

当使用与 springdoc-openapi 捆绑的请求时,有没有一种方法可以自动将 CSRF 标头包含到从 swagger ui 发出的请求中?

springfox ( GitHub )中似乎实现了类似的解决方案,但我没有找到有关是否可以使用 springdoc-openapi 来完成此操作的信息。

小智 9

如果您使用标准标头,则默认支持 CSRF 令牌。(例如使用 spring-security 标头)

如果需要 CSRF 令牌,swagger-ui 会在每个 HTTP 请求期间自动发送新的 XSRF-TOKEN。

也就是说,如果您的 XSRF-TOKEN 不是基于标准的,您可以使用 requestInterceptor 通过 spring 资源转换器以编程方式手动捕获最新的 xsrf 令牌并将其附加到请求:

此外,随着时间的推移,CSRF 变得越来越不重要,因为浏览器添加了用户代理级别的支持来控制跨源请求 cookie 包含。

从 springdoc-openapi v1.4.4 版本开始,添加了一个新属性来启用 CSRF 支持,同时使用标准标头名称:

springdoc.swagger-ui.csrf.enabled=true
Run Code Online (Sandbox Code Playgroud)