2016-02-22 10 views
5

मेरे सभी वसंत आरईएसटी वेब एप्लिकेशन में, मेरे पास बहुत सारी डोमेन ऑब्जेक्ट्स और डीटीओ हैं।जैक्सन @ जेसन इग्नोर फ़ील्ड वसंत सुरक्षा भूमिकाओं के आधार पर

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

मैं प्रत्येक अलग दृश्य संयोजन के लिए नया डीटीओ नहीं बना सकता क्योंकि यह एक गड़बड़ होगी। ,
Spring 3.2: Filtering Jackson JSON output based on Spring Security role
लेकिन यह काम नहीं करता फिल्टर केवल एक बार जब पहली उपयोगकर्ता के लॉगिन लागू किया जाता है,:

मैं इस समाधान मिल गया है। फिर अन्य सभी उपयोगकर्ता एक ही फ़िल्टरिंग प्राप्त करते हैं, इससे कोई फर्क नहीं पड़ता कि उनकी भूमिका क्या है।

मैं मेरी समस्या इस ब्लॉग पोस्ट पर रे हॉलैंड की तुलना में बेहतर व्याख्या नहीं कर सकते:
http://jackson-users.ning.com/forum/topics/jackson-custom-serialization
यह ठीक उसी समस्या मैं कुछ दिनों के लिए हल करने के लिए कोशिश कर रहा हूँ है।

मुझे अब तक ऐसा करने का एक साफ तरीका नहीं मिला।

+0

अलग विचारों के साथ कई नक्शाकार बनाने ( एक नज़र Jackson: Skip Objects Conditionally लेने के लिए) विशिष्ट वर्ग (इंटरफेस) को परिभाषित करने के लिए कॉन्फ़िगर इच्छा है कि मदद करता है अपरिहार्य है – Shashank

उत्तर

0

यह तो @JsonView पर्याप्त नहीं है वसंत परियोजना (example)

में @JsonView उपयोग करना बेहतर है, वहाँ नहीं है आसान उपाय। यह लागू करने के लिए @JsonIgnoreProperties और @JsonFilter

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