मैं एक सुंदर वेनिला spring-boot-starter-data-rest
सेटअप का उपयोग कर रहा हूं और PATCH
विधि सक्षम कर रहा हूं। सब काम कर रहे हैं, लेकिन मुझे सुरक्षा चिंता है और आश्चर्य है कि इसे कम करने का अनुशंसित तरीका क्या है।वसंत बूट डेटा आराम अनुप्रयोग में JSON-PATCH पथ सुरक्षित करना
समस्या यह है कि PATCH
path
एस पहुंच योग्य इकाइयों को एक अलग अंतराल से अद्यतन करने की अनुमति देता है। तो, मान लें कि मेरे पास comments
एंडपॉइंट और article
एंडपॉइंट है। प्रत्येक टिप्पणी के अपने लेख के साथ एक सहयोग है। एक उपयोगकर्ता जिसके पास कोई टिप्पणी संपादित करने की अनुमति है, उसके बाद ऐसा कुछ कर सकता है:
PATCH http://some.domain.foo/api/comments/1234
Content-Type: application/json-patch+json
[
{ "op": "replace", "path": "/article/title", "value": "foobar2" }
]
और इस प्रकार लेख का शीर्षक बदल गया !!
स्पष्ट रूप से यह अच्छा नहीं है।
इस मामले में, एपीआई के अन्य हिस्सों के लिए "लेख" के सहयोग से ट्रैवर्सबल होना आवश्यक है। लेकिन यह केवल पढ़ने के लिए होना चाहिए।
तो ... मैं इसे वसंत में कैसे पूरा करूं?
अनुरोध को रोकें? एक हैंडलर विधि लागू करें? खरोंच से अपना खुद का नियंत्रक लिखें?
धन्यवाद!
अभी तक मैं आगे बढ़ गया हूं और एप्लिकेशन/जेसन-पैच + जेसन सामग्री-प्रकार के साथ पैच को संभालने के लिए एक कस्टम विधि लागू की है। और वह काम करता है। – sofend
मैं जेसन-मर्ज पैच के लिए स्प्रिंग के समर्थन से अपरिचित हूं। उस पर देखेंगे। – sofend
एसोसिएशन पर कोई कैस्केडिंग नहीं है, लेकिन बदलाव निश्चित रूप से जारी रहे हैं। मुझे नहीं लगता कि यह एक कैस्केड तंत्र के माध्यम से है - असल में कैस्केडिंग अवधारणा यहां भी लागू नहीं होती है। यह एसईएल के माध्यम से ऑब्जेक्ट ग्राफ में सत्र पथ से डीबी तक के ग्राफ में परिवर्तन के साथ शुद्ध पथ नेविगेशन है। – sofend