Güzel bir vanilya spring-boot-starter-data-rest
kurulumunu kullanıyorum ve PATCH
yöntemini etkinleştirdim. Her şey çalışıyor, ama bir güvenlik kaygım var ve bunu azaltmanın önerilen yolunun ne olduğunu merak ediyorum.Spring Boot Veri Rest uygulamasında JSON-PATCH yollarını koruma
Sorun, erişilebilen varlıkların PATCH
path
s farklı bir son noktadan güncelleştirilmesine izin vermesidir. Yani, bir comments
son nokta ve bir article
uç noktaya sahip olduğumu varsayalım. Her yorumun makalesiyle bire bir ilişkisi vardır. Sonra böyle bir şey yapabileceğini bir yorumu düzenlemek izni olan bir kullanıcı:
PATCH http://some.domain.foo/api/comments/1234
Content-Type: application/json-patch+json
[
{ "op": "replace", "path": "/article/title", "value": "foobar2" }
]
ve böylece makalenin başlığını değiştirmek !!
Açıkçası bu iyi değil. Bu durumda, API'nın diğer bölümleri için "makale" ile ilişkilendirmenin çaprazlaması gerekir. Ama salt okunur olmalı.
Peki ... bunu Baharda nasıl yapabilirim?
Talebinizi engelleyin? Bir işleyici yöntemi uygulayın? Kendi Denetleyicimi sıfırdan yazabilir miyim?
Teşekkürler!
Şimdiye kadar gittim ve PATCH'u application/json-patch + json content-type ile işlemek için özel bir yöntem uyguladık. Ve bu işe yarıyor. – sofend
Spring'in json-birleştirme PATCH desteğini bilmiyorum. Şuna bak. – sofend
Derneğin üzerinde hiçbir geçiş yok, ancak değişiklikler kesinlikle devam ediyor. Basamaklı bir mekanizma olduğunu sanmıyorum - aslında basamaklı konsept burada bile geçerli değil. Bu, nesne grafiğinde SpEL üzerinden saf yol navigasyonu olup, Seanstan DB'ye devam eden grafiğe yapılan değişiklikler ile birlikte. – sofend