There is a problem with this patch. URLs which are encoded could not
redirect from HTTP to HTTPS. The error is shown on the demo site, for
example, http://demo-trunk.ofbiz.apache.org:8080/ecommerce/ which the
"Login" link does not work.

Regards,
Chatree Srichart

On Mon, Mar 5, 2012 at 6:13 PM, <sascharodek...@apache.org> wrote:

> Author: sascharodekamp
> Date: Mon Mar  5 11:13:29 2012
> New Revision: 1297006
>
> URL: http://svn.apache.org/viewvc?rev=1297006&view=rev
> Log:
> No Url encoding for get parameters (
> https://issues.apache.org/jira/browse/OFBIZ-2628) using the URLEncoder to
> encode and render URLs with special Chars. The encoding is always UTF-8
>
> Modified:
>
>  ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetWorker.java
>
> Modified:
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
> URL:
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java?rev=1297006&r1=1297005&r2=1297006&view=diff
>
> ==============================================================================
> ---
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
> (original)
> +++
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
> Mon Mar  5 11:13:29 2012
> @@ -24,6 +24,8 @@ import java.io.IOException;
>  import java.io.Serializable;
>  import java.io.UnsupportedEncodingException;
>  import java.net.URL;
> +import java.net.URLEncoder;
> +import java.nio.charset.Charset;
>  import java.security.cert.X509Certificate;
>  import java.util.Enumeration;
>  import java.util.List;
> @@ -1113,7 +1115,13 @@ public class RequestHandler {
>                         newURL.insert(questionIndex, sessionId);
>                     }
>                 }
> -                encodedUrl = newURL.toString();
> +
> +                try {
> +                    encodedUrl = URLEncoder.encode(newURL.toString(),
> Charset.forName("UTF-8").displayName());
> +                } catch (UnsupportedEncodingException e) {
> +                    Debug.logError(e, module);
> +                    encodedUrl = newURL.toString();
> +                }
>             }
>         } else {
>             encodedUrl = newURL.toString();
>
> Modified:
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetWorker.java
> URL:
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetWorker.java?rev=1297006&r1=1297005&r2=1297006&view=diff
>
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetWorker.java
> (original)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetWorker.java
> Mon Mar  5 11:13:29 2012
> @@ -20,7 +20,10 @@ package org.ofbiz.widget;
>
>  import java.io.IOException;
>  import java.io.StringWriter;
> +import java.io.UnsupportedEncodingException;
>  import java.math.BigDecimal;
> +import java.net.URLEncoder;
> +import java.nio.charset.Charset;
>  import java.text.DateFormat;
>  import java.util.Map;
>  import java.util.TimeZone;
> @@ -339,7 +342,12 @@ public class WidgetWorker {
>
>         public String getValue(Map<String, Object> context) {
>             if (this.value != null) {
> -                return this.value.expandString(context);
> +                try {
> +                    return
> URLEncoder.encode(this.value.expandString(context),
> Charset.forName("UTF-8").displayName());
> +                } catch (UnsupportedEncodingException e) {
> +                    Debug.logError(e, module);
> +                    return this.value.expandString(context);
> +                }
>             }
>
>             Object retVal = null;
> @@ -370,7 +378,11 @@ public class WidgetWorker {
>                     DateFormat df = UtilDateTime.toDateTimeFormat("EEE MMM
> dd hh:mm:ss z yyyy", timeZone, null);
>                     returnValue = df.format((java.util.Date) retVal);
>                 } else {
> -                    returnValue = retVal.toString();
> +                    try {
> +                        returnValue =
> URLEncoder.encode(retVal.toString(),
> Charset.forName("UTF-8").displayName());
> +                    } catch (UnsupportedEncodingException e) {
> +                        Debug.logError(e, module);
> +                    }
>                 }
>                 return returnValue;
>             } else {
>
>
>

Reply via email to