You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2015/04/09 21:15:04 UTC
svn commit: r1672465 - in /ofbiz/branches/release13.07:
applications/content/src/org/ofbiz/content/content/
applications/product/src/org/ofbiz/product/category/
framework/webapp/src/org/ofbiz/webapp/control/
Author: jacopoc
Date: Thu Apr 9 19:15:03 2015
New Revision: 1672465
URL: http://svn.apache.org/r1672465
Log:
Applied fix from trunk for revision: 1672430
===
Fix for bug reported by Eric de Maulde in OFBIZ-5035: character encoding issue happening in the ecommerce application; the issue was caused by the CatalogUrlFilter and ContentUrlFilter because, under special conditions, they are preventing the ContextFilter (where encoding is set) to be executed.
Modified:
ofbiz/branches/release13.07/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java
ofbiz/branches/release13.07/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java
ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ContextFilter.java
ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java
Modified: ofbiz/branches/release13.07/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java?rev=1672465&r1=1672464&r2=1672465&view=diff
==============================================================================
--- ofbiz/branches/release13.07/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java (original)
+++ ofbiz/branches/release13.07/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java Thu Apr 9 19:15:03 2015
@@ -64,6 +64,9 @@ public class ContentUrlFilter extends Co
//Get ServletContext
ServletContext servletContext = config.getServletContext();
+
+ ContextFilter.setCharacterEncoding(request);
+
//Set request attribute and session
UrlServletHelper.setRequestAttributes(request, delegator, servletContext);
String urlContentId = null;
@@ -91,7 +94,7 @@ public class ContentUrlFilter extends Co
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append("/" + CONTROL_MOUNT_POINT);
urlBuilder.append("/" + config.getInitParameter("viewRequest") + "?contentId=" + urlContentId);
-
+
//Set view query parameters
UrlServletHelper.setViewQueryParameters(request, urlBuilder);
Debug.logInfo("[Filtered request]: " + pathInfo + " (" + urlBuilder + ")", module);
Modified: ofbiz/branches/release13.07/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java?rev=1672465&r1=1672464&r2=1672465&view=diff
==============================================================================
--- ofbiz/branches/release13.07/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java (original)
+++ ofbiz/branches/release13.07/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java Thu Apr 9 19:15:03 2015
@@ -66,7 +66,9 @@ public class CatalogUrlFilter extends Co
//Get ServletContext
ServletContext servletContext = config.getServletContext();
-
+
+ ContextFilter.setCharacterEncoding(request);
+
//Set request attribute and session
UrlServletHelper.setRequestAttributes(request, delegator, servletContext);
Modified: ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ContextFilter.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ContextFilter.java?rev=1672465&r1=1672464&r2=1672465&view=diff
==============================================================================
--- ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ContextFilter.java (original)
+++ ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ContextFilter.java Thu Apr 9 19:15:03 2015
@@ -21,6 +21,7 @@ package org.ofbiz.webapp.control;
import static org.ofbiz.base.util.UtilGenerics.checkMap;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
@@ -310,8 +311,10 @@ public class ContextFilter implements Fi
}
}
+ setCharacterEncoding(request);
+
// we're done checking; continue on
- chain.doFilter(httpRequest, httpResponse);
+ chain.doFilter(request, httpResponse);
}
/**
@@ -332,6 +335,17 @@ public class ContextFilter implements Fi
return dispatcher;
}
+ public static void setCharacterEncoding(ServletRequest request) throws UnsupportedEncodingException {
+ String charset = request.getServletContext().getInitParameter("charset");
+ if (UtilValidate.isEmpty(charset)) charset = request.getCharacterEncoding();
+ if (UtilValidate.isEmpty(charset)) charset = "UTF-8";
+ if (Debug.verboseOn()) Debug.logVerbose("The character encoding of the request is: [" + request.getCharacterEncoding() + "]. The character encoding we will use for the request is: [" + charset + "]", module);
+
+ if (!"none".equals(charset)) {
+ request.setCharacterEncoding(charset);
+ }
+ }
+
/** This method only sets up a dispatcher for the current webapp and passed in delegator, it does not save it to the ServletContext or anywhere else, just returns it */
public static LocalDispatcher makeWebappDispatcher(ServletContext servletContext, Delegator delegator) {
if (delegator == null) {
Modified: ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java?rev=1672465&r1=1672464&r2=1672465&view=diff
==============================================================================
--- ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java (original)
+++ ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java Thu Apr 9 19:15:03 2015
@@ -100,18 +100,11 @@ public class ControlServlet extends Http
HttpSession session = request.getSession();
// setup DEFAULT character encoding and content type, this will be overridden in the RequestHandler for view rendering
- String charset = getServletContext().getInitParameter("charset");
- if (UtilValidate.isEmpty(charset)) charset = request.getCharacterEncoding();
- if (UtilValidate.isEmpty(charset)) charset = "UTF-8";
- if (Debug.verboseOn()) Debug.logVerbose("The character encoding of the request is: [" + request.getCharacterEncoding() + "]. The character encoding we will use for the request and response is: [" + charset + "]", module);
-
- if (!"none".equals(charset)) {
- request.setCharacterEncoding(charset);
- }
+ String charset = request.getCharacterEncoding();
// setup content type
String contentType = "text/html";
- if (charset.length() > 0 && !"none".equals(charset)) {
+ if (UtilValidate.isNotEmpty(charset) && !"none".equals(charset)) {
response.setContentType(contentType + "; charset=" + charset);
response.setCharacterEncoding(charset);
} else {