我有一个使用Spring Boot和Angular 6构建的应用程序。我还使用Swagger-codegen
生成了API客户端。一切正常,但是最近发现该应用程序容易受到CSRF的攻击。因此,我通过在服务器端使用CsrfTokenRepository
在cookie中实现了CSRF令牌,如下所示:
http.csrf().ignoringAntMatchers(CSRF_IGNORE).csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
,对于Angular:
HttpClientXsrfModule.withOptions({cookieName: 'XSRF-TOKEN'}),
现在,该应用程序运行良好,但是swagger-ui和通用API客户端无法运行。它抛出:
在请求参数'_csrf'或标头'X-XSRF-TOKEN'上发现无效的CSRF令牌'null'。
我已经进行了搜索,发现了swagger
和springfox-swagger-ui
的一些问题。特别是,这非常有用https://github.com/springfox/springfox/issues/1450。但我对如何使用此功能或是否可行没有任何想法。在其他大多数地方,开发人员都忽略了CSRF中的swagger-ui
。
任何帮助将不胜感激。
谢谢