Url Rewrite Filter does not work on switching protocol

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Url Rewrite Filter does not work on switching protocol

jyoti
This post was updated on .
Hi,
    I have been working with url rewrite filter since last few days. All the rules worked fine except outbound-rules. I faced following problem:-

When their was a http request none of the https links on the page were being rewritten and in case of https request http links did not work.
The reason of this was that all the urls are rewritten only when encodeUrl() function is called. And in ofbiz encodeUrl is not being called when there is a protocol switch.

Following is the code of RequestHandler.java regarding this.
if (response != null && !forceManualJsessionid && !isSpider) {
                encodedUrl = response.encodeURL(newURL.toString());
            } else {
                if (!isSpider) {
                    String sessionId = ";jsessionid=" + request.getSession().getId();
                    // this should be inserted just after the "?" for the parameters, if there is one, or at the end of the string
                    int questionIndex = newURL.indexOf("?");
                    if (questionIndex == -1) {
                        newURL.append(sessionId);
                    } else {
                        newURL.insert(questionIndex, sessionId);
                    }
                }
                encodedUrl = newURL.toString();
            }
If we replace "encodedUrl = newURL.toString()" in the else portion with "response.encodeURL(newURL.toString())" the problem is solved.

Should i submit this patch in the jira?

Thanks,
Jyoti Sharma
Jyoti Sharma
Reply | Threaded
Open this post in threaded view
|

Re: Url Rewrite Filter does not work on switching protocol

Jacques Le Roux
Administrator
Please yes submit a patch for review, even if what you say is quite clear, it's easier to focus/share there then
I guess you already know https://cwiki.apache.org/confluence/display/OFBADMIN/OFBiz+Contributors+Best+Practices ?

Thanks

Jacques

From: "jyoti" <[hidden email]>

> Hi,
>    I have been working with url rewrite filter since last few days. All the
> rules worked fine except outbound-rules. I faced following problem:-
>
> When their was a http request none of the https links on the page were being
> rewritten and in case of https request http links did not work.
> The reason of this was that all the urls are rewritten only when encodeUrl()
> function is called. And in ofbiz encodeUrl is not being called when there is
> a protocol switch.
>
> Following is the code of RequestHandler.java regarding this.
> if (response != null && !forceManualJsessionid && !isSpider) {
>                encodedUrl = response.encodeURL(newURL.toString());
>            } else {
>                if (!isSpider) {
>                    String sessionId = ";jsessionid=" +
> request.getSession().getId();
>                    // this should be inserted just after the "?" for the
> parameters, if there is one, or at the end of the string
>                    int questionIndex = newURL.indexOf("?");
>                    if (questionIndex == -1) {
>                        newURL.append(sessionId);
>                    } else {
>                        newURL.insert(questionIndex, sessionId);
>                    }
>                }
>                encodedUrl = newURL.toString();
>            }
> If we replace "encodedUrl = newURL.toString()" in the else portion with
> "response.encodeURL(newURL.toString())" the problem is solved.
>
> Should i submit this patch in the jira?
>
>
>
>
>
> --
> View this message in context:
> http://ofbiz.135035.n4.nabble.com/Url-Rewrite-Filter-does-not-work-on-switching-protocol-tp4636429.html
> Sent from the OFBiz - User mailing list archive at Nabble.com.