Author: hoang_to
Date: 2010-09-08 22:43:36 -0400 (Wed, 08 Sep 2010)
New Revision: 4107
Added:
portal/branches/branch-r4047/component/web/api/src/main/java/org/exoplatform/web/filter/ResourceOverridingFilter.java
Log:
GTNPORTAL-1397: Have the ability to modify the Favicon without changing the portal.war
Added:
portal/branches/branch-r4047/component/web/api/src/main/java/org/exoplatform/web/filter/ResourceOverridingFilter.java
===================================================================
---
portal/branches/branch-r4047/component/web/api/src/main/java/org/exoplatform/web/filter/ResourceOverridingFilter.java
(rev 0)
+++
portal/branches/branch-r4047/component/web/api/src/main/java/org/exoplatform/web/filter/ResourceOverridingFilter.java 2010-09-09
02:43:36 UTC (rev 4107)
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2003-2010 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not,
see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.web.filter;
+
+import java.io.IOException;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+import org.exoplatform.container.PortalContainer;
+
+/**
+ * A filter enables resource overriding via extension mechanism.
+ *
+ * @author <a href="mailto:hoang281283@gmail.com">Minh Hoang
TO</a>
+ * Sep 8, 2010
+ */
+
+public class ResourceOverridingFilter implements Filter {
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+
+ HttpServletRequest upcastedRequest = (HttpServletRequest)request;
+
+ PortalContainer portalContainer = PortalContainer.getInstance();
+ ServletContext mergedContext = portalContainer.getPortalContext();
+
+ String path = upcastedRequest.getRequestURI();
+ String ctx = upcastedRequest.getContextPath();
+
+ if(ctx != null && ctx.length() > 0 && path.startsWith(ctx))
+ {
+ path = path.substring(ctx.length());
+ }
+
+ mergedContext.getRequestDispatcher(path).include(request, response);
+ }
+
+}