我正在构建用户注册表格。我有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
答案 0 :(得分:2)
我建议您在定义微服务时遵循标准的API定义。
问题可能是您定义的模式,即/invalid-token
CSRF disable
之所以起作用是因为模式/invalid-token
在API URL中具有特殊字符,我猜这是SpringSecurity允许的。
启用CSRF时,-
导致Spring安全性的方式将其标记为403。
您可以尝试使用模式/invalid/token
,甚至在启用CSRF的情况下尝试,它应该具有必需的行为。