2010-02-03 15 views
5

मुझे अपने प्रमाणीकरण फ़िल्टर में कोई समस्या है। जब फ़िल्टर लॉगिन पृष्ठ पर रीडायरेक्ट करता है, तो लॉगिन जेएसपी में कोई छवियां प्रदर्शित नहीं होती हैं। हालांकि, अगर मैं लॉग इन करने के बाद मैन्युअल रूप से लॉगिन पेज पर जाता हूं, तो छवियां प्रदर्शित होती हैं।जावा सर्वलेट फ़िल्टर रीडायरेक्ट समस्या

मुझे समझ में नहीं आता कि यह क्यों हो रहा है! मैं किसी भी मदद की सराहना करता हूं। :-)

AuthFilter:

if (authorized == null && path.indexOf("Auth") == -1 && path.indexOf("Login") == -1) { 
     httpResponse.sendRedirect("Login"); 
     return; 
} else { 
     chain.doFilter(request, response); 
} 

लॉग इन सर्वलेट:

// Just using a servlet in case I want more data sent to the jsp 
Dispatcher.dispatch("views/login.jsp", request, response); 

login.jsp:

<img src="images/logo.png" /> 

jsp अन्यथा "सामान्य" है, सभी आवश्यक HTML टैग हैं वर्तमान। "छवियों" फ़ोल्डर अन्य सभी जेएसपी और जावास्क्रिप्ट के साथ, परियोजना के डिफ़ॉल्ट "वेब" फ़ोल्डर में है।

किसी भी मदद के लिए अग्रिम धन्यवाद। :)
- Stian

उत्तर

7

यह सापेक्ष पथों की वजह से है।

  • अपने Login संदर्भ की जड़ में है
  • अपनी छवियों को शायद /views/images/
  • हैं जब आप आगे, ब्राउज़र केवल अनुरोध किया गया URL को जानता है।

तो जब आप आगे, छवियों /images पर /views/images/

के बजाय मांग कर रहे हैं (क्योंकि वे वर्तमान पते के सापेक्ष हैं) कैसे इसे हल करने के। दो विकल्प:

  • अपने सर्वलेट से आगे न आएं; इसके बजाय रीडायरेक्ट करें
  • फ़िल्टर से सर्वलेट पर रीडायरेक्ट न करें; सीधे लॉगिन पृष्ठ पर रीडायरेक्ट करें

अद्यतन: सुनिश्चित करें कि छवि फ़िल्टर द्वारा प्रभावित नहीं हैं। दो विकल्प:

  • वे फ़िल्टर पैटर्न
  • पुनर्निर्देशन से मिलान नहीं किया जाना चाहिए .png, .jpeg, .css, फिल्टर में आदि के लिए नहीं होना चाहिए। request.getRequestURI()
+0

मैंने फ़िल्टर से login.jsp पर रीडायरेक्ट करने का प्रयास किया, लेकिन यह काम नहीं किया .. जब मैंने फ़ायरफ़ॉक्स में स्रोत देखा और छवि पर क्लिक किया, तो उसने कहा कि पृष्ठ ठीक से रीडायरेक्ट नहीं कर रहा था। तो शायद यह फ़िल्टर है जो इस समस्या का कारण बन रहा है। – Stian

+0

आह, तो आपको फ़िल्टर से छवियों को बाहर करना होगा - मेरी अद्यतन – Bozho

+0

सहायता के लिए धन्यवाद, अब मुझे पता है कि समस्या कहां है। :) – Stian

2

यह है कि आपके फिल्टर भी छवि अनुरोध करने के लिए आवेदन किया है और login.jsp को logo.png के लिए अनुरोध पुनर्निर्देश है हो सकता है?

यदि ऐसा है, तो आप web.xml में filter-mapping समायोजित कर सकते हैं।

+0

मुझे लगता है कि आप यहां कुछ पर हैं। जब मैंने फ़ायरफ़ॉक्स में login.jsp के स्रोत को देखा, और फिर छवि के लिंक पर क्लिक किया तो मुझे 404 मिल गया: अनुरोधित संसाधन (/ PJ600/images/Login) उपलब्ध नहीं है। फ़िल्टर-मैपिंग समायोजित करके आपका क्या मतलब है? – Stian

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