11
我使用漂亮的香草spring-boot-starter-data-rest
安装并启用了PATCH
方法。所有工作,但我有一个安全问题,并想知道什么是减轻它的推荐方法。在Spring Boot Data Rest应用程序中保护JSON-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的其他部分,与“文章”的关联需要可以穿越。但它必须是只读的。
那么......我在春季怎么做到这一点?
拦截请求? 实现一个处理程序方法? 从头开始写我自己的控制器?
谢谢!
到目前为止,我已经提前实现了一个自定义方法来处理应用程序/ json-patch + json内容类型的PATCH。那是有效的。 – sofend
我不熟悉Spring对JSON合并PATCH的支持。将看看那个。 – sofend
关联中没有级联,但更改肯定会持续存在。我不认为它是通过级联机制 - 事实上,级联概念甚至不适用于此。这是通过SpEL在对象图中进行的纯路径导航,对图的更改从会话持续到数据库。 – sofend