我正在使用一个漂亮的普通spring-boot-starter-data-rest
设置并启用了该PATCH
方法。一切正常,但我有一个安全问题,想知道缓解它的推荐方法是什么。
问题是PATCH
path
s 允许从不同的端点更新可达实体。所以,假设我有一个comments
端点和一个article
端点。每条评论与其文章都有一对一的关联。有权编辑评论的用户可以执行以下操作:
PATCH http://some.domain.foo/api/comments/1234
Content-Type: application/json-patch+json
[
{ "op": "replace", "path": "/article/title", "value": "foobar2" }
]
从而更改文章的标题!
显然这不好。
在这种情况下,对于 API 的其他部分,与“文章”的关联需要是可遍历的。但它必须是只读的。
那么......我如何在春天完成这个?
拦截请求?实现处理程序方法?从头开始编写我自己的控制器?
谢谢!