2011-05-11 15 views
11

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

इस केंद्रीय प्रवेश पृष्ठ के लिए HTML में बहुत पहले लाइन इस के साथ शुरू होता:

<!-- Encoding=ISO-8859-1; 

लेकिन यह कभी नहीं टिप्पणी, जिसका मतलब है कि पूरे दस्तावेज़ में सभी एचटीएमएल कोड वास्तव में टिप्पणी की है समाप्त होता है बाहर। यह आईई 6 में ठीक काम करता है (जो कंपनी मानक है - ईक!), और यह फ़ायरफ़ॉक्स में काम करता था, लेकिन जब मैंने फ़ायरफ़ॉक्स 4 में अपग्रेड किया, तो यह अब काम नहीं करता है (जैसा कि यह नहीं होना चाहिए - यह मानकों का पालन कर रहा है)।

मैं स्रोत बचाया है और करने के लिए पहली पंक्ति बदल दिया है:

<!-- Encoding=ISO-8859-1; --> 

और फिर पृष्ठ प्रदर्शित करेगा, लेकिन चूंकि यह file:/// से भरी हुई है, मैं मुख्य सर्वर से अपनी उपलब्धियों को प्रस्तुत नहीं कर सकते। ..

मुझे आईई 6 का उपयोग करने से नफरत है, लेकिन सभी आंतरिक पृष्ठों के लिए मैं इसके साथ अटक गया हूं क्योंकि हर बार जब मैं केंद्रीय लॉगिन में भेजता हूं तो फ़ायरफ़ॉक्स एक खाली पृष्ठ प्रस्तुत करता है।

क्या HTML को संशोधित करने के लिए फ़ायरफ़ॉक्स एडन (या यहां तक ​​कि एक Greasemonkey स्क्रिप्ट) बनाना संभव है क्योंकि यह ब्राउज़र में आने से पहले ब्राउज़र में आ रहा है? एक बार यह पहले से लोड होने के बाद एचटीएमएल को संशोधित करने के कई उदाहरण देखता है, लेकिन इसे में छेड़छाड़ करने के लिए कुछ भी नहीं मिला है जबकि इसे लोड कर रहा है।

मुझे लगता है कि मैं एक एडन के अलावा अन्य समाधानों के लिए खुला हूं, लेकिन यह एकमात्र चीज थी जिसे मैं सोच सकता था। इसके अलावा, हमें क्रोम या सफारी का उपयोग करने की अनुमति नहीं है, इसलिए यह बाहर है। और नहीं, मैं केंद्रीय लॉगिन पेज के प्रभारी व्यक्ति से बात नहीं कर सकता हूं और उन्हें बदलने के लिए उन्हें प्राप्त कर सकता हूं। पेज की प्रकृति के कारण प्रॉक्सीइंग शायद बहुत मुश्किल हो जाएगा।

अग्रिम धन्यवाद!

+3

क्या एक पवित्र गड़बड़ :) मुझे यह पसंद है, +1 – Henry

+2

सहानुभूति से बाहर +1। क्या झंझट है। – delnan

+2

@ हेनरी और @ डेलन - मैं सहानुभूति की सराहना करता हूं। यह उल्लसित है क्योंकि इसके लिए टिकट अन्य काले भेड़ (फ़ायरफ़ॉक्स उपयोगकर्ता) द्वारा खोले गए हैं और मानक प्रतिक्रिया "मानक ब्राउज़र का उपयोग करें" (आईई 6) है। असल में, यह अब इतना उल्लसित नहीं है कि मैं इसके बारे में सोचता हूं ... – BrianH

उत्तर

1

शायद इसके लिए mod_proxy और mod_subsitute के साथ एक स्थानीय अपाचे का उपयोग किया जा सकता है? berkek.com से एक उदाहरण से व्युत्पन्न:

<VirtualHost *> 
    ServerAdmin [email protected] 
    ServerName www.yourcompany.com 
    <Proxy *> 
    Order deny,allow 
    </Proxy> 
    ProxyRequests on 
    ProxyPass/http://www.yourcompany.com/ 
    ProxyPassReverse/http://www.yourcompany.com/ 
    AddOutputFilterByType SUBSTITUTE text/html 
    Substitute "s|<!-- Encoding=ISO-8859-1;|<!-- Encoding=ISO-8859-1; -->|n" 
</VirtualHost> 
+0

मुझे प्रॉक्सीपास रिवरसे के बारे में पता नहीं था, तो शायद यह काम करेगा। पिछले उत्तर पर मेरी टिप्पणी के लिए - 1 लॉगिन पृष्ठ को ठीक करने के लिए, मेरी सभी ब्राउज़िंग को धीमा नहीं कर पाएगा? (माना जाता है कि मेरी ब्राउज़िंग वर्तमान में आईई 6 में एक भयानक अनुभव है) – BrianH

+0

आप निश्चित रूप से उन साइटों पर प्रॉक्सी का उपयोग करने के लिए अपने ब्राउज़र को कॉन्फ़िगर कर सकते हैं, जिन्हें आपको इस फ़िक्स की आवश्यकता है। उदाहरण देखें [प्रॉक्सी पीएसी फ़ाइल] (http://en.wikipedia.org/wiki/Proxy_auto-config) –

+0

पीएसी फ़ाइल अच्छी तरह से काम करती है। हालांकि, मैं प्रतिस्थापन काम करने के लिए नहीं मिल सकता है। मैंने XAMPP स्थापित किया और विकल्प लाइनों के साथ वर्चुअल होस्ट जोड़ा। यह पृष्ठ परोसता है लेकिन विकल्प नहीं लेगा। मैंने भी एक विकल्प | ए | ब्लाह | एनआई 'किया लेकिन यह अभी भी काम नहीं करेगा। बहुत सारे दस्तावेज़ मिलते हैं, लेकिन कुछ भी काम नहीं करता है। – BrianH

0

प्रॉक्सी का उपयोग न करने के आपके क्या कारण हैं?

अपाचे के httpd + mod_proxy + mod_ext_filter को आपकी समस्याओं को आसानी से हल करना चाहिए; आप प्रोग्राम में प्लग करने के लिए mod_ext_filter का उपयोग करते हैं जो पृष्ठ को ठीक करेगा (छोटी खोल स्क्रिप्ट करना चाहिए)।

+0

हम्म - मैं वास्तव में नहीं चाहता कि मेरी सभी ब्राउज़िंग प्रॉक्सी के माध्यम से हो - केवल एक पृष्ठ (लॉगिन पृष्ठ) के लिए। क्या मेरी सभी ब्राउज़िंग को mod_ext_filter धीमा नहीं होगा? (इसके साथ बहुत परिचित नहीं) – BrianH

+0

mod_proxy w/ProxyPass और ProxyPassReverse सामान्य प्रॉक्सी नहीं है। आप http: // newapacheserver/path तक पहुंचते हैं और यह http: // borkedappserver/path को अनुरोध भेजता है, आपको अपने ब्राउज़र में प्रॉक्सी कॉन्फ़िगर करने की आवश्यकता नहीं है। – alex

0

आप एक Firefox ऐड-ऑन में ऐसा कर सकते हैं, लेकिन यह काम भी पर्याप्त मात्रा में है। http://www.softwareishard.com/blog/firebug/nsitraceablechannel-intercept-http-traffic/ आपको दिखाता है कि क्या करना है, केवल आने वाले डेटा को लेने, इसे सरणी में संग्रहीत करने और इसे originalListener पर भेजने के बजाय, आपको संशोधित डेटा (आपके मामले में, --> जोड़ा गया डेटा) भेजने की आवश्यकता है originalListener

Fiddler Web Debugging Proxy:

1

यहाँ एक विधि मैंने पाया है। यह मूल रूप से @Tatu Lahtela suggested और क्या @alex suggested है, केवल अपाचे के बिना क्या कर रहा है।

ये कदम उठाएँ मैं हुए थे:

  1. Download और फ़िडलर स्थापित
  2. भागो फ़िडलर है, जो (HTTPS टैब) पोर्ट 8888 (डिफ़ॉल्ट रूप से)
  3. पर सुनता फ़िडलर विकल्पों में, जाँच "एचटीटीपीएस यातायात डिक्रिप्ट करें" बॉक्स
  4. फिडलर में, नियम मेनू पर क्लिक करें, फिर नियमों को कस्टमाइज़ करें।
  5. मेरे पाठ संपादक में, मैं OnBeforeResponse समारोह पाया, और इस कोड को कहा:

    if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "html")){ 
        // Remove any compression or chunking  
        oSession.utilDecodeResponse(); 
    
        var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes); 
    
        var oRegEx = /<!-- Encoding=ISO-8859-1; /gi; 
        oBody = oBody.replace(oRegEx, "<!-- Encoding=ISO-8859-1; -->"); 
    
        oSession.utilSetResponseBody(oBody); 
    } 
    
  6. फ़िडलर में, उपकरण> विकल्प> कनेक्शन टैब के तहत, क्लिक करें "कॉपी ब्राउज़र प्रॉक्सी कॉन्फ़िगरेशन URL" (यह प्रॉक्सी पीएसी फ़ाइल है जिसे @ टातु लाहतेला ने उल्लेख किया है)।

  7. फ़ायरफ़ॉक्स, उपकरण> विकल्प> उन्नत टैब-> नेटवर्क टैब-> सेटिंग्स में, जाँच "स्वचालित प्रॉक्सी कॉन्फ़िगरेशन यूआरएल और चरण 6 # से URL में चिपकाएं।
  8. वेब सर्फ़!

मैं साइटों कि फ़िडलर के लिए गया था की तरह @Tatu Lahtela सुझाव सीमित करने के लिए पीएसी फ़ाइल को संशोधित।

यह मेरे लिए काम करता है, कम से कम सेटअप के साथ। एक फ़ायरफ़ॉक्स ऐड-ऑन मेरे लिए बेहतर होगा के बाद से मैं का उपयोग नहीं होगा एक बाहरी कार्यक्रम, लेकिन ऐसा करने के लिए एक बनाना बहुत मुश्किल लगता है।

मदद करने वाले हर किसी के लिए धन्यवाद! मैं @Tatu Lahtela के जवाब को स्वीकार किए गए उत्तर के रूप में चिह्नित करूंगा क्योंकि इस तरह मैं अपनी जरूरतों को ढूंढने में सक्षम था।

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