Author: remm Date: Mon Nov 10 13:41:20 2014 New Revision: 1637848 URL: http://svn.apache.org/r1637848 Log: Port r1637839 57187 again: handle * before mapping.
Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/mapper/Mapper.java Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1637848&r1=1637847&r2=1637848&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Mon Nov 10 13:41:20 2014 @@ -778,6 +778,27 @@ public class CoyoteAdapter implements Ad req.serverName().setString(proxyName); } + // Check for ping OPTIONS * request + if (req.requestURI().equals("*")) { + if (req.method().equalsIgnoreCase("OPTIONS")) { + StringBuilder allow = new StringBuilder(); + allow.append("GET, HEAD, POST, PUT, DELETE"); + // Trace if allowed + if (connector.getAllowTrace()) { + allow.append(", TRACE"); + } + // Always allow options + allow.append(", OPTIONS"); + res.setHeader("Allow", allow.toString()); + } else { + res.setStatus(404); + res.setMessage("Not found"); + } + connector.getService().getContainer().logAccess( + request, response, 0, true); + return false; + } + // Copy the raw URI to the decodedURI MessageBytes decodedURI = req.decodedURI(); decodedURI.duplicate(req.requestURI()); Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/mapper/Mapper.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/mapper/Mapper.java?rev=1637848&r1=1637847&r2=1637848&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/mapper/Mapper.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/mapper/Mapper.java Mon Nov 10 13:41:20 2014 @@ -846,15 +846,6 @@ public final class Mapper { path.setOffset(servletPath); - if ((pathEnd - pathOffset) == 1 && path.getBuffer()[pathOffset] == '*') { - // Special "*" URL - if (contextVersion.defaultWrapper != null) { - mappingData.wrapper = contextVersion.defaultWrapper.object; - mappingData.wrapperPath.setString("*"); - } - return; - } - // Rule 1 -- Exact Match MappedWrapper[] exactWrappers = contextVersion.exactWrappers; internalMapExactWrapper(exactWrappers, path, mappingData); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org