如何使用reactjs前端+Spring Security 在grails中启用csrf

drkbr07n  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(369)

我想在我的grails应用程序中使用reactjs前端启用csrf。我在文档中没有看到任何关于如何进行此操作的明确步骤。
我已将我的标头配置为在向后端发出任何请求时发送csrf令牌:

'Content-Type': 'application/json',
    'Authorization': `Bearer ${*********, 'access_token')}`,
    'X-Csrf-Token':Cookie.load('XSRF-TOKEN')

请告诉我如何在后端拦截请求并验证csrf令牌。
编辑
我在一篇文章中实现了这一点:

@Configuration
class CorsFilterConfig {

    @Bean
    FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource()
        CorsConfiguration config = new CorsConfiguration()
        config.setAllowCredentials(true)
        config.addAllowedOrigin("*")
        config.addAllowedHeader("*")
        config.addAllowedMethod("*")
        source.registerCorsConfiguration("/**", config)
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source))
        bean.setOrder(0)
        return bean
    }
}

我目前的问题是在我的标题中包含xsrf令牌。我当前的实现不起作用。

a9wyjsp7

a9wyjsp71#

处理令牌的spring security rest插件也解决了这一问题:https://gitter.im/alvarosanchez/spring-security-rest?at=566e32a26a17cd3b36dcc8e9
请在此查看:https://github.com/grails-plugins/grails-spring-security-rest/issues/216
从外观上看,您可能必须编写自己的令牌读取器(这并不难)

相关问题