From dev-return-190834-archive-asf-public=cust-asf.ponee.io@tomcat.apache.org Mon May 14 16:18:24 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 84B92180627 for ; Mon, 14 May 2018 16:18:23 +0200 (CEST) Received: (qmail 88729 invoked by uid 500); 14 May 2018 14:18:17 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 88718 invoked by uid 99); 14 May 2018 14:18:17 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 May 2018 14:18:17 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id D9461C9F9B for ; Mon, 14 May 2018 14:18:16 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.669 X-Spam-Level: X-Spam-Status: No, score=0.669 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 7KBeGxHZiVCQ for ; Mon, 14 May 2018 14:18:15 +0000 (UTC) Received: from mail-it0-f41.google.com (mail-it0-f41.google.com [209.85.214.41]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 96B0F5F4AE for ; Mon, 14 May 2018 14:18:15 +0000 (UTC) Received: by mail-it0-f41.google.com with SMTP id c3-v6so11120403itj.4 for ; Mon, 14 May 2018 07:18:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=iarm5Cbe51jsafwariOLFmfD8EgQC/x29k9UmkOh72w=; b=f4B1FYTnbe9thZbSZTxWcLhxJ0Sfidloox2QWOxu+uyZWgYpZuNCyhB8IyfICivkvL qpjEt69ZjDyBlN2h+lpLI2Qae2zKOi/7M1MqzzZCC41hIofNeidoAEwJ7in/b3XDAH6L R/mDviAotrlOm3YXBuFH4rsn5/2i2ZiLfUJW3bTT+OhwDP3OXj5pEQh8kmtyVh/iaM4Y iwPMi+jyg/lteabY8UAPHrnRgDyaLugt2RysYcDXj6eJAkPFNmRmB4ri/1n8I6M3sRU8 v7+GXP+r/yEeKKaOpaHfaQcECAe/p0B9x+uriNtFAR+9MZCX1iNokGj2QYYfxsJ6fPua o6Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=iarm5Cbe51jsafwariOLFmfD8EgQC/x29k9UmkOh72w=; b=LuQ/Aj4IPcwfr7wkfk6I2aHht0UtvQI1qu7p2j6xODHfxwQTtTwUMmH7zv5rT+1TXN srf/jLdiprNZ44pu67xtIPR9MmYP4mqnmbV4UQs9NorH2yl6vLnK2uj1ihMN+LBUHmqj TnuRxh/19vaBE0GIO3Q3dn7yoBrCl0LMdZ+htYammWyc0nat4BYT343hyNVSiz6uHYbl Z9L5ep9Ab3B5aQLDv1RgJeSr3g8bcFvXRshAAoHzBC/zPVRcgTv6q+dPCyf9ZmmwPBYC HHVknxUfrHsP9ltaWoHOe0cuC+xu/wgdzzI++/KQV52Q88aCNMUDQVfEXxaQQdSbP2hz BS4Q== X-Gm-Message-State: ALKqPwehAz0TcPLCWG6L6AK+4NCzk5NE0DJTiIiX1K4GQnHSU8kxLuwY sep+rixBt6pfZ5fTGftzP44VTS9PNwdKwZ+dCns6R8n2 X-Google-Smtp-Source: AB8JxZqS3e1feNzhDllYp7mJAqgjx6czMTCkDm3cddJKwkNXv8HtQWANN2IgkPJcwr86eaviRwxirnGhUc+pyrBjoBY= X-Received: by 2002:a24:98c5:: with SMTP id n188-v6mr10412014itd.150.1526307494628; Mon, 14 May 2018 07:18:14 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4f:7207:0:0:0:0:0 with HTTP; Mon, 14 May 2018 07:18:13 -0700 (PDT) In-Reply-To: <20180514134505.EBCB03A006C@svn01-us-west.apache.org> References: <20180514134505.EBCB03A006C@svn01-us-west.apache.org> From: Konstantin Kolinko Date: Mon, 14 May 2018 17:18:13 +0300 Message-ID: Subject: Re: svn commit: r1831568 - in /tomcat/trunk: java/org/apache/coyote/AbstractProcessor.java java/org/apache/coyote/LocalStrings.properties java/org/apache/coyote/http11/Http11Processor.java webapps/docs/changelog.xml To: Tomcat Developers List Content-Type: text/plain; charset="UTF-8" 2018-05-14 16:45 GMT+03:00 : > Author: markt > Date: Mon May 14 13:45:05 2018 > New Revision: 1831568 > > URL: http://svn.apache.org/viewvc?rev=1831568&view=rev > Log: > Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62371 > Improve logging of Host validation failures. > > Modified: > tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java > tomcat/trunk/java/org/apache/coyote/LocalStrings.properties > tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java > tomcat/trunk/webapps/docs/changelog.xml > Mark, 1) Documentation. The cases when UserDataHelper.CONFIG is used are listed at "System properties" page, http://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html#Logging 2) I wonder: there are many instances of Processor? One for each request processing thread? I wonder whether this implemenation of silencing with UserDataHelper works, as there are many copies of it. Though their total count is limited, so the log message will be silenced eventually. Looking at the history, such handling of UserDataHelper is here since r1489437 (5 years ago), updated at r1655973. > Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1831568&r1=1831567&r2=1831568&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) > +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Mon May 14 13:45:05 2018 > @@ -29,6 +29,7 @@ import org.apache.tomcat.util.ExceptionU > import org.apache.tomcat.util.buf.ByteChunk; > import org.apache.tomcat.util.buf.MessageBytes; > import org.apache.tomcat.util.http.parser.Host; > +import org.apache.tomcat.util.log.UserDataHelper; > import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; > import org.apache.tomcat.util.net.DispatchType; > import org.apache.tomcat.util.net.SSLSupport; > @@ -61,6 +62,7 @@ public abstract class AbstractProcessor > */ > private ErrorState errorState = ErrorState.NONE; > > + protected final UserDataHelper userDataHelper; > > public AbstractProcessor(Adapter adapter) { > this(adapter, new Request(), new Response()); > @@ -75,6 +77,7 @@ public abstract class AbstractProcessor > response.setHook(this); > request.setResponse(response); > request.setHook(this); > + userDataHelper = new UserDataHelper(getLog()); > } > > /** > @@ -294,8 +297,23 @@ public abstract class AbstractProcessor > > } catch (IllegalArgumentException e) { > // IllegalArgumentException indicates that the host name is invalid > + UserDataHelper.Mode logMode = userDataHelper.getNextMode(); > + if (logMode != null) { > + String message = sm.getString("abstractProcessor.hostInvalid", valueMB.toString()); > + switch (logMode) { > + case INFO_THEN_DEBUG: > + message += sm.getString("abstractProcessor.fallToDebug"); > + //$FALL-THROUGH$ > + case INFO: > + getLog().info(message, e); > + break; > + case DEBUG: > + getLog().debug(message, e); > + } > + } > + > response.setStatus(400); > - setErrorState(ErrorState.CLOSE_CLEAN, null); > + setErrorState(ErrorState.CLOSE_CLEAN, e); > } > } > > > Modified: tomcat/trunk/java/org/apache/coyote/LocalStrings.properties > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/LocalStrings.properties?rev=1831568&r1=1831567&r2=1831568&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/coyote/LocalStrings.properties (original) > +++ tomcat/trunk/java/org/apache/coyote/LocalStrings.properties Mon May 14 13:45:05 2018 > @@ -23,7 +23,9 @@ abstractConnectionHandler.socketexceptio > abstractConnectionHandler.negotiatedProcessor.fail=Failed to create Processor for negotiated protocol [{0}] > abstractConnectionHandler.upgradeCreate=Created upgrade processor [{0}] for socket wrapper [{1}] > > +abstractProcessor.fallToDebug=\n Note: further occurrences of request parsing errors will be logged at DEBUG level. > abstractProcessor.httpupgrade.notsupported=HTTP upgrade is not supported by this protocol > +abstractProcessor.hostInvalid=The host [{0}] is not valid > abstractProcessor.noExecute=Unable to transfer processing to a container thread because this Processor is not currently associated with a SocketWrapper > abstractProcessor.nonContainerThreadError=An error occurred in processing while on a non-container thread. The connection will be closed immediately > abstractProcessor.pushrequest.notsupported=Server push requests are not supported by this protocol > > Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1831568&r1=1831567&r2=1831568&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) > +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Mon May 14 13:45:05 2018 > @@ -73,8 +73,6 @@ public class Http11Processor extends Abs > > private final AbstractHttp11Protocol protocol; > > - private final UserDataHelper userDataHelper; > - > /** > * Input. > */ > @@ -151,8 +149,6 @@ public class Http11Processor extends Abs > super(adapter); > this.protocol = protocol; > > - userDataHelper = new UserDataHelper(log); > - > httpParser = new HttpParser(protocol.getRelaxedPathChars(), > protocol.getRelaxedQueryChars()); > > > Modified: tomcat/trunk/webapps/docs/changelog.xml > URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1831568&r1=1831567&r2=1831568&view=diff > ============================================================================== > --- tomcat/trunk/webapps/docs/changelog.xml (original) > +++ tomcat/trunk/webapps/docs/changelog.xml Mon May 14 13:45:05 2018 > @@ -109,6 +109,9 @@ > Relax Host validation by removing the requirement that the final > component of a FQDN must be alphabetic. (markt) > > + > + 62371: Improve logging of Host validation failures. (markt) > + > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org > For additional commands, e-mail: dev-help@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org