/ / WebAuthenticationDetails.getRemoteAddress () से लौटे मूल्य के संबंध में प्रश्न - वसंत, वसंत-सुरक्षा, आईपी-पता

WebAuthenticationDetails.getRemoteAddress () से वसंत मूल्य के बारे में प्रश्न - वसंत, वसंत-सुरक्षा, आईपी पता

मैं एक कस्टम AccessDecisionVoter लिख रहा हूंकेवल कुछ संसाधनों तक पहुँच की अनुमति देगा यदि अनुरोध का दूरस्थ पता IP पतों की सूची में पाया जाता है। हालाँकि, WebAuthenticationDetails.getRemoteAddress () द्वारा लौटाए गए दूरस्थ पते का मान एक प्रारूप में है जो IPv6 प्रतीत होता है। स्थानीय रूप से मेरा ऐप चलाते समय, उपरोक्त विधि द्वारा यह लौटाया जाता है:

0:0:0:0:0:0:0:1%0

मैं एक में स्वीकृत पते को संग्रहीत कर रहा हूंएक गुण फ़ाइल में अल्पविराम-सीमांकित सूची। सूची को पार्स किया गया है और प्रत्येक अनुमत पते की तुलना दूरस्थ पते से की जाती है, लेकिन जब से मुझे पता नहीं है कि एक आईपीवी 4 पते को एक आईपीवी 6 पते में कैसे अनुवाद किया जाए तो यह तुलना हमेशा विफल रहेगी।

तो क्या वह मान हमेशा WebAuthenticationDetails.getRemoteAddress () द्वारा वापस किया जाता है या क्या मैं इसे केवल इसलिए देख रहा हूं क्योंकि मैं इसे स्थानीय रूप से चला रहा हूं?

क्या इस स्ट्रिंग को IPv4 स्ट्रिंग में बदलने का कोई तरीका है?

क्या कोई विधि है जिसके बदले में प्रश्न Ipv4 स्ट्रिंग को वापस करने की विधि है?

धन्यवाद!

उत्तर:

जवाब के लिए 3 № 1

आप IPv6 पते को IPv4 पते में नहीं बदल सकते। दो अलग-अलग प्रोटोकॉल का प्रतिनिधित्व करते हैं। का पता है getRemoteAddress() वेबैप के अनुरोध को बनाने के लिए उपयोग किए गए प्रोटोकॉल के आधार पर एक प्रारूप में होगा। मुझे लगता है कि आप स्थानीय रूप से ऐप का उपयोग करते समय केवल आईपीवी 6 पता देखते हैं। 0:0:0:0:0:0:0:1 का पता है localhost, जो वही है 127.0.0.1 IPv4 में। मुझे लगता है कि आपको इस IPv6 पते को अनुमत IP की सूची में जोड़ना चाहिए