[jboss-svn-commits] JBL Code SVN: r16589 - in labs/jbosslabs/trunk/portal-extensions: forge-portal-attr/src/java/org/jboss/forge/portal and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Nov 14 06:52:27 EST 2007


Author: szimano
Date: 2007-11-14 06:52:27 -0500 (Wed, 14 Nov 2007)
New Revision: 16589

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/WikiRedirectFilter.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/portlet/WikiPortletMyFaces.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath
Log:
wiki redirect filter interdomain

Modified: labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml	2007-11-14 11:15:28 UTC (rev 16588)
+++ labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml	2007-11-14 11:52:27 UTC (rev 16589)
@@ -31,7 +31,8 @@
    <distributable/>
    -->
 
-    <!-- LABS FILTERS -->
+    <!-- LABS FILTERS -->   
+    
    <servlet>
    	<servlet-name>loginServlet</servlet-name>
    	<servlet-class>org.jboss.forge.portal.LoginServlet</servlet-class>
@@ -82,6 +83,31 @@
 		<url-pattern>/logout</url-pattern>
 	</servlet-mapping>
 
+   <!-- <filter>
+   	<filter-name>wikiRedirect</filter-name>
+   	<filter-class>org.jboss.forge.portal.WikiRedirectFilter</filter-class>
+   	<init-param>
+   		<param-name>WIKI_DOMAIN</param-name>
+   		<param-value>wiki.jboss.org</param-value>
+   		<description>Domain that wiki is running on</description>
+   	</init-param>
+   	<init-param>
+   		<param-name>JBOSS_ORG_DOMAIN</param-name>
+   		<param-value>labs.jboss.com</param-value>
+   		<description>Domain that jboss.org is running on</description>
+   	</init-param>
+   	<init-param>
+   		<param-name>WIKI_CONTEXT</param-name>
+   		<param-value>/wiki,/auth/wiki,/authsec/wiki</param-value>
+   		<description>Wiki context</description>
+   	</init-param>
+   </filter> -->
+
+   <filter-mapping>
+   	<filter-name>wikiRedirect</filter-name>
+   	<url-pattern>/*</url-pattern>
+   </filter-mapping>
+   
     <filter>
       <filter-name>redirectFilter</filter-name>
       <filter-class>org.jboss.forge.redirect.RootRedirectFilter</filter-class>

Added: labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/WikiRedirectFilter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/WikiRedirectFilter.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/WikiRedirectFilter.java	2007-11-14 11:52:27 UTC (rev 16589)
@@ -0,0 +1,99 @@
+package org.jboss.forge.portal;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.jboss.logging.Logger;
+
+/**
+ * @author tomaszszymanski
+ * 
+ * This filter handles all requests on jboss.org that server wiki for everyone.
+ * If the request is done on wiki domain (for example http://wiki.jboss.org) we
+ * allow only requests done in wiki (/wiki) context. In other situation user is
+ * redirected to the uri he requested, but on jboss.org domain
+ * (http://jboss.org/...)
+ */
+public class WikiRedirectFilter implements Filter {
+
+	private static final String WIKI_DOMAIN = "WIKI_DOMAIN";
+	private static final String JBOSS_ORG_DOMAIN = "JBOSS_ORG_DOMAIN";
+	private static final String WIKI_CONTEXT = "WIKI_CONTEXT";
+
+	private String[] wikiDomain;
+	private String jbossOrgDomain;
+	private String[] wikiContext;
+	
+	private static final Logger log = Logger.getLogger(WikiRedirectFilter.class);
+
+	public void destroy() {
+
+	}
+
+	public void doFilter(ServletRequest request, ServletResponse response,
+			FilterChain chain) throws IOException, ServletException {
+		HttpServletRequest htReq = (HttpServletRequest) request;
+
+		// check if wiki domain was requested
+		if (stringEquals(htReq.getServerName(),wikiDomain)) {
+
+			log.debug(htReq.getRequestURI() + " " + htReq.getContextPath() + " ");
+			
+			// if yes - check if it wasn't a request for wiki context
+			if (!contextInsideWiki(htReq.getRequestURI())) {
+
+				// do redirect to main jboss.org site - we don't want users
+				// browsing projects on wiki domain
+				HttpServletResponse htRes = (HttpServletResponse) response;
+
+				htRes
+						.sendRedirect((htReq.isSecure() ? "https" : "http")
+								+ "://"
+								+ jbossOrgDomain
+								+ (htReq.getLocalPort() == 80 ? "" : ":"
+										+ htReq.getLocalPort())
+								+ htReq.getRequestURI());
+				return;
+			}
+		}
+
+		// if request is OK - just render.
+
+		chain.doFilter(request, response);
+	}
+
+	private boolean stringEquals(String desiredStr, String[] strings) {
+		for (String s : strings) {
+			if (desiredStr.equals(s)) {
+				return true;
+			}
+		}
+		
+		return false;
+	}
+
+	private boolean contextInsideWiki(String requestURI) {
+		for (String wikiCon :wikiContext) {
+			if (requestURI.startsWith(wikiCon)) {
+				return true;
+			}
+		}
+		
+		return false;
+	}
+
+	public void init(FilterConfig config) throws ServletException {
+		wikiDomain = config.getInitParameter(WIKI_DOMAIN).split(",");
+		jbossOrgDomain = config.getInitParameter(JBOSS_ORG_DOMAIN);
+		wikiContext = config.getInitParameter(WIKI_CONTEXT).split(",");
+	}
+
+}

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/portlet/WikiPortletMyFaces.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/portlet/WikiPortletMyFaces.java	2007-11-14 11:15:28 UTC (rev 16588)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/portlet/WikiPortletMyFaces.java	2007-11-14 11:52:27 UTC (rev 16589)
@@ -25,7 +25,6 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.util.HashMap;
 import java.util.Iterator;

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath	2007-11-14 11:15:28 UTC (rev 16588)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath	2007-11-14 11:52:27 UTC (rev 16589)
@@ -1,29 +1,58 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <classpath>
-	<classpathentry kind="src" path="src/java"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="var" path="MAVEN_REPO/log4j/jars/log4j-1.2.9.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/javax.servlet.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/javax.servlet.jsp.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/junit/jars/junit-3.8.1.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/activation.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/commons-fileupload/jars/commons-fileupload-1.0.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/commons-configuration/jars/commons-configuration-1.1.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.1.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-3.1.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/dom4j/jars/dom4j-1.6.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jdom/jars/jdom-1.0.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3x.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/portlet-api/jars/portlet-api-1.0.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-jmx.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-common-lib.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-core-lib.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-portlet-lib.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jbossall-client-3.2.3.jar"/>
-	<classpathentry kind="lib" path="/Users/tomek/java/sandbox/portal-extensions/shotoku/shotoku-base/target/shotoku-base.jar"/>
-	<classpathentry kind="lib" path="/Users/tomek/java/sandbox/portal-extensions/shotoku/shotoku-aop/target/shotoku-aop.jar"/>
-	<classpathentry kind="var" path="MAVEN_REPO/guice/jars/guice-1.0.jar"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/wiki-common"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
+  <classpathentry excluding="" kind="src" path="src/java">
+  </classpathentry>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/log4j/jars/log4j-1.2.9.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/wiki-common/jars/wiki-common.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/javax.servlet/jars/jsp-api-2.0.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/javax.servlet/jars/servlet-api-2.4.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/junit/jars/junit-3.8.1.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/activation.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/commons-fileupload/jars/commons-fileupload-1.0.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/commons-configuration/jars/commons-configuration-1.1.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.1.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-3.1.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/dom4j/jars/dom4j-1.6.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jdom/jars/jdom-1.0.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3x.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/portlet-api/jars/portlet-api-1.0.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-jmx.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-common.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-common-lib.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-core-lib.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-portlet-lib.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jbossall-client-3.2.3.jar">
+  </classpathentry>
+  <classpathentry kind="lib" path="/Users/tomek/java/sandbox/portal-extensions/shotoku/shotoku-base/target/shotoku-base.jar">
+  </classpathentry>
+  <classpathentry kind="lib" path="/Users/tomek/java/sandbox/portal-extensions/shotoku/shotoku-aop/target/shotoku-aop.jar">
+  </classpathentry>
+  <classpathentry kind="var" path="MAVEN_REPO/guice/jars/guice-1.0.jar">
+  </classpathentry>
+  <classpathentry kind="output" path="target/classes">
+  </classpathentry>
+</classpath>
\ No newline at end of file




More information about the jboss-svn-commits mailing list