You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ga...@apache.org on 2005/07/18 16:05:09 UTC
svn commit: r219493 - in /incubator/roller/branches/roller_1.2:
metadata/xdoclet/ src/org/roller/presentation/filters/
src/org/roller/presentation/velocity/
Author: gangolli
Date: Mon Jul 18 07:04:52 2005
New Revision: 219493
URL: http://svn.apache.org/viewcvs?rev=219493&view=rev
Log:
Merge of 219426:219427 for ROL-760 to 1.2 branch.
Added:
incubator/roller/branches/roller_1.2/src/org/roller/presentation/filters/CharEncodingFilter.java
- copied unchanged from r219439, incubator/roller/trunk/src/org/roller/presentation/filters/CharEncodingFilter.java
Modified:
incubator/roller/branches/roller_1.2/metadata/xdoclet/filter-mappings.xml
incubator/roller/branches/roller_1.2/src/org/roller/presentation/filters/RequestFilter.java
incubator/roller/branches/roller_1.2/src/org/roller/presentation/velocity/SearchServlet.java
Modified: incubator/roller/branches/roller_1.2/metadata/xdoclet/filter-mappings.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.2/metadata/xdoclet/filter-mappings.xml?rev=219493&r1=219492&r2=219493&view=diff
==============================================================================
--- incubator/roller/branches/roller_1.2/metadata/xdoclet/filter-mappings.xml (original)
+++ incubator/roller/branches/roller_1.2/metadata/xdoclet/filter-mappings.xml Mon Jul 18 07:04:52 2005
@@ -5,18 +5,32 @@
******************************************************* -->
<!--
+ NOTE: Wherever "dispatcher" elements are specified in the filter mappings, they are
+ required for Servlet API 2.4 containers, such as Tomcat 5+ and Resin 3+, but should be
+ commented out for Servlet API 2.3 containers, like Tomcat 4.x and Resin 2.x.
+-->
+
+<!--
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
-<!-- Map everything to the PersistenceSessionFilter -->
+<!-- Ensures character encoding set to UTF-8 and JSTL and Struts locales are in sync.
+ Note: Any filters preceding this one MUST not cause request parsing. -->
+<filter-mapping>
+ <filter-name>CharEncodingFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+</filter-mapping>
+
+<!-- Map everything to the PersistenceSessionFilter.
+ NOTE: Any filters preceding this one MUST NOT use persistence sessions.-->
<filter-mapping>
<filter-name>PersistenceSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
- <!-- You must uncomment these two dispatcher lines on Tomcat 5+ and any Servlet API 2.4+ container
- in order to avoid database connection leaks on the FORWARD dispatch paths. -->
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
@@ -64,8 +78,6 @@
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/login.jsp</url-pattern>
- <!-- You must uncomment these two dispatcher lines on Tomcat 5+ and any Servlet API 2.4+ container
- in order for RememberMe to work in these environments, because we can reach login.jsp via FORWARD. -->
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
Modified: incubator/roller/branches/roller_1.2/src/org/roller/presentation/filters/RequestFilter.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.2/src/org/roller/presentation/filters/RequestFilter.java?rev=219493&r1=219492&r2=219493&view=diff
==============================================================================
--- incubator/roller/branches/roller_1.2/src/org/roller/presentation/filters/RequestFilter.java (original)
+++ incubator/roller/branches/roller_1.2/src/org/roller/presentation/filters/RequestFilter.java Mon Jul 18 07:04:52 2005
@@ -49,40 +49,15 @@
}
/**
- * As the first and last filter in the chain, it is necessary that
- * RequestFilter releases its Roller resources before it returns.
+ * Request filter.
*/
public void doFilter(
ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException
{
- try
- {
- // insure that incoming data is parsed as UTF-8
- req.setCharacterEncoding("UTF-8");
- }
- catch (UnsupportedEncodingException e)
- {
- throw new ServletException("Can't set incoming encoding to UTF-8");
- }
-
- // keep JSTL and Struts Locale's in sync
+ // NOTE: Setting character encoding and JSTL/Struts locale sync has been moved to
+ // CharEncodingFilter, which is mapped for all URIs in the context.
HttpSession session = ((HttpServletRequest)req).getSession();
- if (null != session)
- {
- Locale locale = (Locale)session.getAttribute(Globals.LOCALE_KEY);
- if (locale == null)
- {
- locale = req.getLocale();
- }
- if (req.getParameter("locale") != null)
- {
- locale = new Locale(req.getParameter("locale"));
- }
- session.setAttribute(Globals.LOCALE_KEY, locale);
- Config.set(session, Config.FMT_LOCALE, locale);
- }
-
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
Roller roller = RollerContext.getRoller( request );
Modified: incubator/roller/branches/roller_1.2/src/org/roller/presentation/velocity/SearchServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.2/src/org/roller/presentation/velocity/SearchServlet.java?rev=219493&r1=219492&r2=219493&view=diff
==============================================================================
--- incubator/roller/branches/roller_1.2/src/org/roller/presentation/velocity/SearchServlet.java (original)
+++ incubator/roller/branches/roller_1.2/src/org/roller/presentation/velocity/SearchServlet.java Mon Jul 18 07:04:52 2005
@@ -1,14 +1,11 @@
package org.roller.presentation.velocity;
import java.io.IOException;
-import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
-
-import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
@@ -39,6 +36,7 @@
import org.roller.util.StringUtils;
+
/**
* This servlet retrieves (and displays) search results.
*
@@ -69,6 +67,9 @@
public Template handleRequest(HttpServletRequest request,
HttpServletResponse response, Context ctx) throws Exception
{
+ // Note: Removed request character encoding here; was too late; it is now set uniformly in CharEncodingFilter.
+ // See ROL-760.
+
String enabled = RollerConfig.getProperty("search.enabled");
if("false".equalsIgnoreCase(enabled))
this.searchEnabled = false;
@@ -91,20 +92,7 @@
}
return outty;
}
-
- // set request Charcter Encoding here, because the SearchServlet
- // is not preceeded by the RequestFilter
- mLogger.debug("handleRequest()");
- try
- {
- // insure that incoming data is parsed as UTF-8
- request.setCharacterEncoding("UTF-8");
- }
- catch (UnsupportedEncodingException e)
- {
- throw new ServletException("Can't set incoming encoding to UTF-8");
- }
-
+
ctx.put("term", "");
ctx.put("hits", new Integer(0));
ctx.put("searchResults", new TreeMap());