मेरे पास ऐसी स्थिति है जहां उपयोगकर्ता को एक सुरक्षित यूआरएल तक पहुंचने का प्रयास करने पर कुछ कोड चलाने की जरूरत है और प्रमाणीकृत/अधिकृत नहीं है।क्या यह देखना संभव है कि फ़ायरवॉल के पीछे प्रोग्रामिंग के माध्यम से कोई यूआरएल/रूट सुरक्षित है या नहीं?
डिफ़ॉल्ट रूप से, सिम्फनी उपयोगकर्ता को लॉगिन फॉर्म में रीडायरेक्ट या अग्रेषित करके अनधिकृत उपयोगकर्ताओं को संभालता है। यदि अनुरोध विधि पोस्ट है, तो मैं इसे रोकने से रोकना चाहता हूं, और इसके बजाय JSON ऑब्जेक्ट को प्रतिबिंबित करता हूं।
- जांच करता है कि अनुरोध विधि है पोस्ट:
सबसे अच्छा तरीका है मैं इस संभाल करने के बारे में सोच सकते हैं कि
kernel.request
घटना को सुनता है और दो बातें की जाँच करता है एक कस्टम श्रोता बनाने के लिए है उपयोगकर्ता पूरी तरह
प्रमाणीकृत यदि यह एक पोस्ट अनुरोध है, और पूरी तरह से उपयोगकर्ता प्रमाणीकृत नहीं है, मैं एक JSON ऑब्जेक्ट गूंज होता है।
लेकिन मेरा श्रोता (अपेक्षित रूप से) सभी अनुरोधों के लिए फायरिंग है - मैं इसे केवल यह जांचने के लिए सीमित करना चाहता हूं कि अनुरोध फ़ायरवॉल द्वारा संरक्षित यूआरएल के लिए है या नहीं। क्या यह प्रोग्रामिक रूप से जांचना संभव है?
मैं भी एक सता संदेह है कि इस बारे में जाने के लिए एक सरल तरीका है है, लेकिन यह समझ नहीं है, इसलिए यदि किसी को कोई सुझाव है, मैं उन्हें :)
संपादित जानकर अच्छा लगेगा
@Problematic - केवल फ़ायरवॉल अनुरोधों की जांच करने का कारण यह है क्योंकि मेरे पास कुछ अनुरोध हैं जो फ़ायरवॉल नहीं हैं, और यदि मेरा कोड निकाल दिया गया है, तो मुझे अनुरोध की वास्तविक प्रतिक्रिया के बजाय उपरोक्त JSON ऑब्जेक्ट प्राप्त होगा।
अभी अगर मैं लॉग इन नहीं हूं और api/get/something
(जो फ़ायरवॉल के पीछे है) के लिए POST अनुरोध करें, सिम्फनी लॉगिन पृष्ठ का वर्णन करने वाले HTML को वापस लौटाता है। इसके बजाय, मैं सिर्फ {error: 'User is not authorized'}
जैसे कुछ गूंजना चाहता हूं। लेकिन मैं केवल POST अनुरोधों के लिए ऐसा करना चाहता हूं।
केवल फ़ायरवॉल अनुरोधों की जांच करने का कारण क्या है? – Problematic
@Problematic, कृपया मेरा संपादन –