Author: mmusaji
Date: 2012-08-10 11:35:58 -0400 (Fri, 10 Aug 2012)
New Revision: 2062
Modified:
branches/7.0.x/java/org/apache/catalina/connector/Connector.java
branches/7.0.x/java/org/apache/catalina/connector/CoyoteAdapter.java
Log:
[JBPAPP-9404] Added changes so that a copy of the Set of allowedHost is stored as lower
case to avoid a bug which was found in the original fix for JBPAPP-9404
Modified: branches/7.0.x/java/org/apache/catalina/connector/Connector.java
===================================================================
--- branches/7.0.x/java/org/apache/catalina/connector/Connector.java 2012-08-10 15:33:30
UTC (rev 2061)
+++ branches/7.0.x/java/org/apache/catalina/connector/Connector.java 2012-08-10 15:35:58
UTC (rev 2062)
@@ -19,6 +19,8 @@
package org.apache.catalina.connector;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.Set;
import javax.management.MBeanRegistration;
@@ -268,7 +270,7 @@
* Allowed virtual hosts.
*/
protected Set<String> allowedHosts = null;
-
+ protected Set<String> allowedHostsIgnoreCase = new HashSet();
protected static HashMap<String, String> replacements = new HashMap<String,
String>();
static {
@@ -391,8 +393,20 @@
public void setAllowedHosts(Set<String> allowedHosts) {
this.allowedHosts = allowedHosts;
-
+ addAllowedHostsToLowerCaseSet();
}
+
+ private void addAllowedHostsToLowerCaseSet() {
+ Iterator<String> it = allowedHosts.iterator();
+ while (it.hasNext()) {
+ String allowedHost = it.next();
+ allowedHostsIgnoreCase.add(allowedHost.toLowerCase());
+ }
+ }
+
+ public Set<String> getAllowedHostsIgnoreCase() {
+ return allowedHostsIgnoreCase;
+ }
/**
* Is this connector available for processing requests?
Modified: branches/7.0.x/java/org/apache/catalina/connector/CoyoteAdapter.java
===================================================================
--- branches/7.0.x/java/org/apache/catalina/connector/CoyoteAdapter.java 2012-08-10
15:33:30 UTC (rev 2061)
+++ branches/7.0.x/java/org/apache/catalina/connector/CoyoteAdapter.java 2012-08-10
15:35:58 UTC (rev 2062)
@@ -548,7 +548,7 @@
}
if (connector.getAllowedHosts() != null) {
Host host = (Host) request.getMappingData().host;
- if (!connector.getAllowedHosts().contains(host.getName())) {
+ if (!connector.getAllowedHostsIgnoreCase().contains(host.getName())) {
res.setStatus(403);
res.setMessage("Host access is forbidden through this
connector");
return false;
Show replies by date