[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