【发布时间】:2016-07-21 23:46:48
【问题描述】:
我正在构建一个 RESTful Spring Boot 和 React/Alt 应用程序。我想添加 spring 安全性以确保对 API 没有未经身份验证的请求。
我将 Auth0 用作身份验证提供程序,因此用户可以登录应用程序,更具体地说是 spring-security-auth0 库来处理服务器端安全方面的事情。 https://github.com/auth0/spring-security-auth0
在学习了关于 Auth0 的基本教程之后,我已经在我的 Spring 应用程序中配置了安全配置,这样如果没有 JSON Web 令牌,对 API 的请求将无法工作。这可行,但控制器中有一些端点(需要 POST 的端点)不需要。我在 Chrome 开发工具中收到此错误 -
Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'
我知道没有 CSRF 标头存在,这就是它不起作用的原因。但我感到困惑的主要原因是我禁用了 CSRF 并且它仍然会发生。正如 spring 文档所指示的那样,我已经做到了 -
@Configuration
@EnableWebSecurity
@ComponentScan("com.auth0")
@ImportResource("classpath:auth0-security-context.xml")
@PropertySource("classpath:auth0.properties")
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
在这种情况下,我不需要 CSRF,因为该应用只会在开发环境中使用。为什么即使我完全禁用了 CSRF,仍然会出现这种情况?
【问题讨论】:
标签: java spring security reactjs spring-security