Author: remy.maucherat(a)jboss.com
Date: 2011-03-23 12:54:28 -0400 (Wed, 23 Mar 2011)
New Revision: 1686
Modified:
trunk/java/org/apache/catalina/Host.java
trunk/java/org/apache/catalina/connector/Connector.java
trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
trunk/java/org/apache/catalina/core/StandardHost.java
trunk/webapps/docs/changelog.xml
Log:
- Add host filtering in the connector (easier than the rewrite valve).
- Configuration for the name of the root webapp.
Modified: trunk/java/org/apache/catalina/Host.java
===================================================================
--- trunk/java/org/apache/catalina/Host.java 2011-03-21 12:15:31 UTC (rev 1685)
+++ trunk/java/org/apache/catalina/Host.java 2011-03-23 16:54:28 UTC (rev 1686)
@@ -100,6 +100,21 @@
/**
+ * Return the default webapp name.
+ */
+ public String getDefaultWebapp();
+
+
+ /**
+ * Set the default webapp name for this Host. Defaults to "ROOT.war".
+ *
+ * @param defaultWebapp The archive name of the webapp which will be mapped
+ * as the root of the host
+ */
+ public void setDefaultWebapp(String defaultWebapp);
+
+
+ /**
* Return the canonical, fully qualified, name of the virtual host
* this Container represents.
*/
Modified: trunk/java/org/apache/catalina/connector/Connector.java
===================================================================
--- trunk/java/org/apache/catalina/connector/Connector.java 2011-03-21 12:15:31 UTC (rev
1685)
+++ trunk/java/org/apache/catalina/connector/Connector.java 2011-03-23 16:54:28 UTC (rev
1686)
@@ -21,6 +21,7 @@
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.util.HashMap;
+import java.util.Set;
import javax.management.MBeanRegistration;
import javax.management.MBeanServer;
@@ -261,6 +262,12 @@
*/
protected boolean useBodyEncodingForURI = false;
+
+ /**
+ * Allowed virtual hosts.
+ */
+ protected Set<String> allowedHosts = null;
+
protected static HashMap replacements = new HashMap();
static {
@@ -376,7 +383,27 @@
}
+
/**
+ * Set of allowed hosts.
+ */
+ public Set<String> getAllowedHosts() {
+
+ return allowedHosts;
+
+ }
+
+
+ /**
+ * Restrict the connector to certain hosts.
+ */
+ public void setAllowedHosts(Set<String> allowedHosts) {
+
+ this.allowedHosts = allowedHosts;
+
+ }
+
+ /**
* Is this connector available for processing requests?
*/
public boolean isAvailable() {
Modified: trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
===================================================================
--- trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 2011-03-21 12:15:31 UTC
(rev 1685)
+++ trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 2011-03-23 16:54:28 UTC
(rev 1686)
@@ -536,7 +536,13 @@
res.setMessage("Context not mapped");
return false;
}
-
+ if (connector.getAllowedHosts() != null
+ &&
!connector.getAllowedHosts().contains(request.getMappingData().host)) {
+ res.setStatus(403);
+ res.setMessage("Host access is forbidden through this connector");
+ return false;
+ }
+
// Filter trace method
if (!connector.getAllowTrace()
&& req.method().equalsIgnoreCase("TRACE")) {
Modified: trunk/java/org/apache/catalina/core/StandardHost.java
===================================================================
--- trunk/java/org/apache/catalina/core/StandardHost.java 2011-03-21 12:15:31 UTC (rev
1685)
+++ trunk/java/org/apache/catalina/core/StandardHost.java 2011-03-23 16:54:28 UTC (rev
1686)
@@ -85,6 +85,12 @@
/**
+ * The default webapp name.
+ */
+ private String defaultWebapp = "ROOT";
+
+
+ /**
* The Java class name of the default context configuration class
* for deployed web applications.
*/
@@ -154,6 +160,22 @@
}
+ public String getDefaultWebapp() {
+
+ return (this.defaultWebapp);
+
+ }
+
+
+ public void setDefaultWebapp(String defaultWebapp) {
+
+ String oldDefaultWebapp = this.defaultWebapp;
+ this.defaultWebapp = defaultWebapp;
+ support.firePropertyChange("defaultWebapp", oldDefaultWebapp,
this.defaultWebapp);
+
+ }
+
+
/**
* Return the Java class name of the context configuration class
* for new web applications.
Modified: trunk/webapps/docs/changelog.xml
===================================================================
--- trunk/webapps/docs/changelog.xml 2011-03-21 12:15:31 UTC (rev 1685)
+++ trunk/webapps/docs/changelog.xml 2011-03-23 16:54:28 UTC (rev 1686)
@@ -16,6 +16,19 @@
<body>
+<section name="JBoss Web 7.0.0.Beta7 (remm)">
+ <subsection name="Catalina">
+ <changelog>
+ <update>
+ Add a host filtering feature in the connectors. (remm)
+ </update>
+ <update>
+ Add root webapp configuration in Host. (remm)
+ </update>
+ </changelog>
+ </subsection>
+</section>
+
<section name="JBoss Web 7.0.0.Beta6 (remm)">
<subsection name="General">
<changelog>
Show replies by date