2017-02-28 12 views
5

मैं एक स्प्रिंग (स्प्रिंगबूट) एप्लिकेशन में एक आरामदायक डेटाबेस के रूप में डेटाबेस से डेटा का खुलासा करना चाहता हूं। स्प्रिंग डेटा रेस्ट इस गतिविधि के उद्देश्य के लिए एक सटीक फिट प्रतीत होता है।वसंत डेटा आराम - क्या समर्थित संचालन को प्रतिबंधित करने का कोई तरीका है?

यह डेटाबेस केवल मेरी एप्लिकेशन आवश्यकताओं के लिए पढ़ा जाता है। डिफ़ॉल्ट सभी HTTP विधियों को प्रदान करता है। क्या कोई विन्यास है जिसका उपयोग मैं अन्य विधियों को उजागर होने से रोकने के लिए उपयोग कर सकता हूं (वास्तव में रोक सकता हूं)?

+3

जीईटी अनुरोधों के अलावा अन्य सभी चीज़ों को अवरुद्ध करने के लिए वसंत सुरक्षा का सबसे सुविधाजनक तरीका उपयोग करना होगा। एसडीआर इस क्षेत्र में कार्यक्षमता प्रदान करता है: http://docs.spring.io/spring-data/rest/docs/current/reference/html/#customizing-sdr.hiding-repository-crud-methods हालांकि HTTP स्तर पर हैंडलिंग वसंत सुरक्षा के माध्यम से सरल है। –

उत्तर

12
Hiding repository CRUD methods पर स्प्रिंग डॉक्स से

:

16.2.3। छिपाई जा रही है भंडार CRUD तरीकों

आप को बेनकाब करने के लिए एक को बचाने या अपने CrudRepository पर विधि हटाते हैं, तो आप @RestResource उपयोग कर सकते हैं नहीं करना चाहते हैं (निर्यात = false) विधि आप बंद करना चाहते हैं और रखने अधिभावी द्वारा सेटिंग ओवरराइड संस्करण पर एनोटेशन। उदाहरण के लिए, HTTP उपयोगकर्ताओं को CrudRepository के डिलीट विधियों का आह्वान करने से रोकने के लिए, उन सभी को ओवरराइड करें और ओवरराइडन विधियों में एनोटेशन जोड़ें।

@RepositoryRestResource(path = "people", rel = "people") 
interface PersonRepository extends CrudRepository<Person, Long> { 

    @Override 
    @RestResource(exported = false) 
    void delete(Long id); 

    @Override 
    @RestResource(exported = false) 
    void delete(Person entity); 
} 

यह महत्वपूर्ण है कि आप दोनों निर्यातक जैसे तरीकों को नष्ट ओवरराइड है वर्तमान में determing जो CRUD विधि तेजी क्रम प्रदर्शन के हित में उपयोग करने के लिए कुछ हद तक एक अनुभवहीन एल्गोरिथ्म का उपयोग करता। यह वर्तमान में संभव है कि हटाए गए संस्करण को बंद करना संभव है जो आईडी लेता है लेकिन उस संस्करण को निर्यात छोड़ देता है जो इकाई उदाहरण लेता है। समय के लिए, आप या तो हटाए गए तरीकों को निर्यात कर सकते हैं या नहीं। यदि आप उन्हें बंद करना चाहते हैं, तो बस ध्यान रखें कि आपको निर्यात किए गए = झूठे दोनों संस्करणों को एनोटेट करना होगा।

+0

यदि आप इसे पढ़ रहे हैं, तो आपको इस टिकट को वोट देने के बारे में सोचना चाहिए। एसडीआर खतरनाक हो सकता है। https://jira.spring.io/browse/DATAREST-1034 – Snekse

संबंधित मुद्दे