bor*_*orq 10 rest annotations spring-security
我们最近开始在@PreAuthorize我们的REST端点上使用注释.它工作得很好,但是,我确实对发出GET与POST或PUT时返回的HTTP代码有疑问.似乎当用户未被授权访问控制器的REST端点时,返回的HTTP状态对于GET和PUT/POST是不同的.
因此,例如,如果我的端点是GET并且具有@PreAuthorize注释并且用户没有访问权限,则返回403 Forbidden.这就是我的期望.
如果然后将相同的注释放在POST或PUT的控制器方法上,则HTTP响应为405 Method Not Allowed(请注意,如果正确授权,POST/PUT方法将按预期返回200).
单步执行代码时,您可以看到底层安全过滤器返回403,但在POST/PUT场景中,状态代码被删除/忽略并替换为405,就像NullPointerExcpetion在控制器代码中出现时一样.
这是预期的行为还是应该为无法访问终点的用户返回403 Forbidden?
| 归档时间: |
|
| 查看次数: |
1594 次 |
| 最近记录: |