5

साथ काम नहीं कर रहा मैं इस प्रकार अपने नियमों में से एक होने का उपयोग कर रहा tuckey URLRewrite फिल्टर:URLRewrite फिल्टर बहुखण्डीय रूप

<rule> 
    <name> Proxy URL with jession ID's </name> 
    <note> 

    </note> 
    <condition type="parameter" name="ParamName">[\p{ASCII}]+</condition> 
    <from>^/([^?]*)\.htm(.*)$</from> 
    <to type="proxy">%{request-url};jsessionid=%{parameter:ParamName}$2</to> 
</rule> 

समस्या को जल्द मैं अपने फार्म (जो POST पद्धति btw का उपयोग करता) को enctype="multipart/form-data" जोड़ने के रूप में पैदा होती है । फिल्टर यूआरएल को फिर से लिखने में असमर्थ है।

कोई भी विचार इस मुद्दे को हल करने के लिए कैसे करें?

+0

आपको किस प्रकार की त्रुटि मिल रही है? नियमित अभिव्यक्ति से – Kraylog

+0

मेल नहीं खाता है और फिर से लिखना नियम काम नहीं कर रहा है –

+0

क्या आपकी समस्या है कि आप POST के माध्यम से इनपुट फ़ील्ड वाउल्स पुनर्प्राप्त नहीं कर सकते? – kamaci

उत्तर

1

यदि आप एप्लिकेशन के स्रोत को बदल सकते हैं तो आप इसे संशोधित कर सकते हैं ताकि आप JSESSIONID निकालने के "पैरामीटर" विधि का उपयोग कर सकें। डिफ़ॉल्ट रूप से (कम से कम टॉमकैट पर) JSESSIONID को फॉर्म पोस्ट में पास नहीं किया जाएगा, लेकिन आप इसे शामिल करने के लिए अपने फॉर्म को संशोधित कर सकते हैं। उदाहरण के लिए एक JSP पेज इस प्रकार दिखाई देंगे:

<form action="index.jsp" method="post"> 
    <input type="hidden" name="JSESSIONID" value="${pageContext.session.id}"/> 
    <input type="submit"/> 
</form> 

वैकल्पिक रूप से आप कोशिश करते हैं और एक अलग शर्त का उपयोग सत्र कुकी से jsessionid लाने सकता है। मैं जैसे कि यह आप के लिए काम कर सकता था निम्नलिखित लेकिन कल्पना कुछ प्रयास नहीं किया है:

<rule> 
    <name>Proxy URL with jsession ID's</name> 
    <note></note> 
    <condition type="cookie" name="JSESSIONID"/> 
    <from>^/([^?]*)\.htm(.*)$</from> 
    <to type="proxy">%{request-url};jsessionid=%{cookie:JSESSIONID}$2</to> 
</rule> 

कि क्या सत्र id मान्य था जाँच करने के लिए अन्य शर्तों आप संभावित इस्तेमाल कर सकते हैं (का अनुरोध सत्र-आईडी-मान्य) कर रहे हैं , एक कुकी से उत्पन्न (अनुरोध-सत्र-आईडी-से-कुकी) या पोस्ट एक्शन (अनुरोध-सत्र-आईडी-से-यूआरएल) के यूआरएल से उत्पन्न हुआ।

मुझे यकीन है कि UrlRewriteFilter का कौन सा संस्करण उपयोग कर रहे हैं नहीं कर रहा हूँ, लेकिन अगर आप को देखो "स्थायी रूप से jsessionid युक्त भेजे रीडायरेक्ट URL।" निम्न URL पर उदाहरण आपको लगता है कि jsessionid अन्य की तरह एक पैरामीटर नहीं है देखेंगे पोस्ट/जीईटी पैरामीटर हैं।

http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/guide.html

मैं अत्यधिक ताकि आप वास्तव में क्या पारित किया जा रहा है के लिए एक विचार प्राप्त अपने पोस्ट अनुरोध और हेडर की जांच के लिए एक साथ फ़ायरफ़ॉक्स/Firebug उपयोग करने की अनुशंसा कर सकते हैं। (मुझे यकीन है कि ऐसे अन्य टूल्स भी हैं जो यह भी करते हैं, फिडलर 2 इत्यादि)।

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