Spring Security POST方法抛出403错误

时间:2019-04-23 05:08:39

标签: java spring spring-boot spring-mvc

我正在构建用户注册表格。我有POST个注册端点,并且能够成功注册。

我还有一个名为/invalid-token的端点,它也映射到POST映射。我将两个端点都添加到了permitAll规则中,如下所示:

 http.authorizeRequests()
     .antMatchers(
         "/register",
         "/confirm",
         "/invalid-token",
         "/registration-success")
     .permitAll()
     .anyRequest()
     .authenticated();

当我从浏览器向POST发出invalid-token请求时,我得到了403。我不明白我要去哪里错了。

Response Status:
        General:
        Request URL: http://localhost:8081/invalid-token
        Request Method: POST
        Status Code: 403 
        Remote Address: [::1]:8081
        Referrer Policy: no-referrer-when-downgrade



  Cache-Control: no-cache, no-store, max-age=0, must-revalidate
   Content-Length: 0
   Date: Tue, 23 Apr 2019 05:14:30 GMT
   Expires: 0
   Pragma: no-cache
   X-Content-Type-Options: nosniff
   X-Frame-Options: DENY
   X-XSS-Protection: 1; mode=block

1 个答案:

答案 0 :(得分:2)

我建议您在定义微服务时遵循标准的API定义。

问题可能是您定义的模式,即/invalid-token

CSRF disable之所以起作用是因为模式/invalid-token在API URL中具有特殊字符,我猜这是SpringSecurity允​​许的。

启用CSRF时,-导致Spring安全性的方式将其标记为403。

您可以尝试使用模式/invalid/token,甚至在启用CSRF的情况下尝试,它应该具有必需的行为。