You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2011/02/13 14:41:34 UTC

svn commit: r1070238 - /wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/RequestMapperApplication.java

Author: mgrigorov
Date: Sun Feb 13 13:41:34 2011
New Revision: 1070238

URL: http://svn.apache.org/viewvc?rev=1070238&view=rev
Log:
WICKET-3407 Switching from HttsRequired page to http page with forms in both pages

Use HttpsConfig that extracts the http port from the current http request's local port.
This way the example can run with Jetty (most of the time on port 8080) and in production eventually behind proxy (like www.wicketstuff.org and www.wicket-library.com)


Modified:
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/RequestMapperApplication.java

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/RequestMapperApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/RequestMapperApplication.java?rev=1070238&r1=1070237&r2=1070238&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/RequestMapperApplication.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/RequestMapperApplication.java Sun Feb 13 13:41:34 2011
@@ -16,12 +16,15 @@
  */
 package org.apache.wicket.examples.requestmapper;
 
+import javax.servlet.http.HttpServletRequest;
+
 import org.apache.wicket.Page;
 import org.apache.wicket.RuntimeConfigurationType;
 import org.apache.wicket.examples.WicketExampleApplication;
 import org.apache.wicket.examples.requestmapper.packageMount.PackageMountedPage;
 import org.apache.wicket.protocol.https.HttpsConfig;
 import org.apache.wicket.protocol.https.HttpsMapper;
+import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.MountedMapper;
 
 /**
@@ -59,7 +62,7 @@ public class RequestMapperApplication ex
 
 		mountResource("/print/${sheet}/${format}", new MapperDemoResourceReference());
 
-		setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new HttpsConfig()));
+		setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new LazyHttpsConfig()));
 	}
 
 	/**
@@ -70,4 +73,42 @@ public class RequestMapperApplication ex
 	{
 		return RuntimeConfigurationType.DEVELOPMENT;
 	}
+
+	/**
+	 * HttpsConfig that extracts the <i>http</i> port out of the current servlet request's local
+	 * port. This way the demo can be used both with Jetty (port 8080) and at production (behind
+	 * Apache proxy)
+	 */
+	private static class LazyHttpsConfig extends HttpsConfig
+	{
+		@Override
+		public int getHttpPort()
+		{
+			int port = -1;
+
+			RequestCycle requestCycle = RequestCycle.get();
+			if (requestCycle != null)
+			{
+				HttpServletRequest containerRequest = (HttpServletRequest)requestCycle.getRequest()
+					.getContainerRequest();
+				if (containerRequest != null)
+				{
+					port = containerRequest.getLocalPort();
+				}
+			}
+
+			if (port == -1)
+			{
+				port = super.getHttpPort();
+			}
+
+			return port;
+		}
+
+		@Override
+		public int getHttpsPort()
+		{
+			return 443;
+		}
+	}
 }