我想在我的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令牌。我当前的实现不起作用。
1条答案
按热度按时间a9wyjsp71#
处理令牌的spring security rest插件也解决了这一问题:https://gitter.im/alvarosanchez/spring-security-rest?at=566e32a26a17cd3b36dcc8e9
请在此查看:https://github.com/grails-plugins/grails-spring-security-rest/issues/216
从外观上看,您可能必须编写自己的令牌读取器(这并不难)