This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit ddddfff9ccdcbb7b6fb24417ae77eab6b79a93b4
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Sep 11 11:40:34 2025 +0100

    Use constant for GET
---
 .../apache/catalina/ant/AbstractCatalinaTask.java  |  3 +-
 .../catalina/authenticator/FormAuthenticator.java  |  9 +++---
 .../catalina/core/ApplicationDispatcher.java       |  5 ++--
 java/org/apache/catalina/filters/Constants.java    |  4 ++-
 java/org/apache/catalina/filters/CorsFilter.java   |  3 +-
 .../catalina/filters/CsrfPreventionFilter.java     |  3 +-
 .../org/apache/catalina/filters/ExpiresFilter.java |  3 +-
 java/org/apache/catalina/servlets/CGIServlet.java  |  5 ++--
 .../apache/catalina/servlets/DefaultServlet.java   |  7 +++--
 java/org/apache/coyote/ajp/Constants.java          |  4 ++-
 java/org/apache/coyote/http2/Hpack.java            |  3 +-
 .../tomcat/websocket/server/UpgradeUtil.java       |  3 +-
 .../TestAuthenticatorBaseCorsPreflight.java        |  7 +++--
 .../authenticator/TestFormAuthenticatorA.java      | 21 +++++++-------
 .../authenticator/TestFormAuthenticatorB.java      |  9 +++---
 .../authenticator/TestFormAuthenticatorC.java      | 11 ++++----
 .../TesterDigestAuthenticatorPerformance.java      |  6 ++--
 .../org/apache/catalina/connector/TestRequest.java |  3 +-
 .../catalina/core/TestApplicationDispatcher.java   |  3 +-
 .../apache/catalina/core/TestStandardWrapper.java  |  3 +-
 .../apache/catalina/filters/TestCorsFilter.java    | 33 +++++++++++-----------
 .../filters/TestRestCsrfPreventionFilter.java      | 11 ++++----
 .../filters/TestRestCsrfPreventionFilter2.java     | 10 +++----
 test/org/apache/catalina/realm/TestRealmBase.java  |  3 +-
 .../servlets/TestDefaultServletOptions.java        |  4 ++-
 .../servlets/TestDefaultServletRedirect.java       |  3 +-
 .../TestWebdavServletOptionCollection.java         |  4 ++-
 .../servlets/TestWebdavServletOptionsFile.java     |  4 ++-
 .../servlets/TestWebdavServletOptionsUnknown.java  |  4 ++-
 .../apache/catalina/startup/TomcatBaseTest.java    |  5 ++--
 .../apache/catalina/valves/TestAccessLogValve.java |  3 +-
 .../valves/TestExtendedAccessLogValve.java         |  3 +-
 .../catalina/valves/rewrite/TestRewriteValve.java  | 11 ++++----
 test/org/apache/coyote/ajp/SimpleAjpClient.java    |  6 ++--
 .../coyote/ajp/TestAbstractAjpProcessor.java       |  7 +++--
 .../coyote/http11/TestHttp11InputBuffer.java       |  3 +-
 test/org/apache/coyote/http2/Http2TestBase.java    |  5 ++--
 test/org/apache/coyote/http2/TestHttp2Limits.java  |  3 +-
 .../apache/coyote/http2/TestHttp2Section_8_1.java  | 25 ++++++++--------
 .../coyote/http2/TestHttp2UpgradeHandler.java      |  3 +-
 .../apache/coyote/http2/TestStreamProcessor.java   | 15 +++++-----
 .../descriptor/web/TestSecurityConstraint.java     | 27 +++++++++---------
 42 files changed, 176 insertions(+), 131 deletions(-)

diff --git a/java/org/apache/catalina/ant/AbstractCatalinaTask.java 
b/java/org/apache/catalina/ant/AbstractCatalinaTask.java
index 845aa3cf2e..5c5542aa86 100644
--- a/java/org/apache/catalina/ant/AbstractCatalinaTask.java
+++ b/java/org/apache/catalina/ant/AbstractCatalinaTask.java
@@ -28,6 +28,7 @@ import java.net.URISyntaxException;
 import java.net.URLConnection;
 
 import org.apache.catalina.util.IOTools;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 
@@ -198,7 +199,7 @@ public abstract class AbstractCatalinaTask extends 
BaseRedirectorHelperTask {
                 }
             } else {
                 hconn.setDoOutput(false);
-                hconn.setRequestMethod("GET");
+                hconn.setRequestMethod(Method.GET);
             }
             hconn.setRequestProperty("User-Agent", "Catalina-Ant-Task/1.0");
 
diff --git a/java/org/apache/catalina/authenticator/FormAuthenticator.java 
b/java/org/apache/catalina/authenticator/FormAuthenticator.java
index ca8aebf402..cde0afcdae 100644
--- a/java/org/apache/catalina/authenticator/FormAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/FormAuthenticator.java
@@ -40,6 +40,7 @@ import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.MessageBytes;
 import org.apache.tomcat.util.descriptor.web.LoginConfig;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.http.MimeHeaders;
 
 /**
@@ -301,7 +302,7 @@ public class FormAuthenticator extends AuthenticatorBase {
                 // the landing page
                 String uri = request.getContextPath() + landingPage;
                 SavedRequest saved = new SavedRequest();
-                saved.setMethod("GET");
+                saved.setMethod(Method.GET);
                 saved.setRequestURI(uri);
                 saved.setDecodedRequestURI(uri);
                 
request.getSessionInternal(true).setNote(Constants.FORM_REQUEST_NOTE, saved);
@@ -326,7 +327,7 @@ public class FormAuthenticator extends AuthenticatorBase {
                 // the landing page
                 String uri = request.getContextPath() + landingPage;
                 SavedRequest saved = new SavedRequest();
-                saved.setMethod("GET");
+                saved.setMethod(Method.GET);
                 saved.setRequestURI(uri);
                 saved.setDecodedRequestURI(uri);
                 session.setNote(Constants.FORM_REQUEST_NOTE, saved);
@@ -443,7 +444,7 @@ public class FormAuthenticator extends AuthenticatorBase {
 
         // Always use GET for the login page, regardless of the method used
         String oldMethod = request.getMethod();
-        request.getCoyoteRequest().setMethod("GET");
+        request.getCoyoteRequest().setMethod(Method.GET);
 
         RequestDispatcher disp = 
context.getServletContext().getRequestDispatcher(loginPage);
         try {
@@ -585,7 +586,7 @@ public class FormAuthenticator extends AuthenticatorBase {
         String method = saved.getMethod();
         MimeHeaders rmh = request.getCoyoteRequest().getMimeHeaders();
         rmh.recycle();
-        boolean cacheable = "GET".equals(method) || "HEAD".equals(method);
+        boolean cacheable = Method.GET.equals(method) || "HEAD".equals(method);
         Iterator<String> names = saved.getHeaderNames();
         while (names.hasNext()) {
             String name = names.next();
diff --git a/java/org/apache/catalina/core/ApplicationDispatcher.java 
b/java/org/apache/catalina/core/ApplicationDispatcher.java
index de21be7e2f..e1bb5c60b2 100644
--- a/java/org/apache/catalina/core/ApplicationDispatcher.java
+++ b/java/org/apache/catalina/core/ApplicationDispatcher.java
@@ -45,6 +45,7 @@ import org.apache.catalina.connector.ResponseFacade;
 import org.apache.coyote.BadRequestException;
 import org.apache.coyote.CloseNowException;
 import org.apache.tomcat.util.ExceptionUtils;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
@@ -224,7 +225,7 @@ final class ApplicationDispatcher implements 
AsyncDispatcher, RequestDispatcher
             // All ERROR dispatches must be GET requests. Use the presence of 
ERROR_METHOD to determine if this is an
             // error dispatch as not all components (JSP) set the dispatcher 
type.
             if (request.getAttribute(ERROR_METHOD) != null) {
-                wrequest.setMethod("GET");
+                wrequest.setMethod(Method.GET);
             }
             wrequest.setRequestURI(hrequest.getRequestURI());
             wrequest.setContextPath(hrequest.getContextPath());
@@ -247,7 +248,7 @@ final class ApplicationDispatcher implements 
AsyncDispatcher, RequestDispatcher
             // All ERROR dispatches must be GET requests. Use the presence of 
ERROR_METHOD to determine if this is an
             // error dispatch as not all components (JSP) set the dispatcher 
type.
             if (request.getAttribute(ERROR_METHOD) != null) {
-                wrequest.setMethod("GET");
+                wrequest.setMethod(Method.GET);
             }
             wrequest.setContextPath(context.getEncodedPath());
             wrequest.setRequestURI(requestURI);
diff --git a/java/org/apache/catalina/filters/Constants.java 
b/java/org/apache/catalina/filters/Constants.java
index a0b8edb1a1..c893d8121c 100644
--- a/java/org/apache/catalina/filters/Constants.java
+++ b/java/org/apache/catalina/filters/Constants.java
@@ -16,6 +16,7 @@
  */
 package org.apache.catalina.filters;
 
+import org.apache.tomcat.util.http.Method;
 
 /**
  * Manifest constants for this Java package.
@@ -44,7 +45,8 @@ public final class Constants {
      */
     public static final String CSRF_NONCE_REQUEST_PARAM_NAME_KEY = 
"org.apache.catalina.filters.CSRF_NONCE_PARAM_NAME";
 
-    public static final String METHOD_GET = "GET";
+    @Deprecated
+    public static final String METHOD_GET = Method.GET;
 
     public static final String CSRF_REST_NONCE_HEADER_NAME = "X-CSRF-Token";
 
diff --git a/java/org/apache/catalina/filters/CorsFilter.java 
b/java/org/apache/catalina/filters/CorsFilter.java
index 1ca0fd829a..d3bd5a0c05 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -37,6 +37,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import org.apache.catalina.Globals;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.http.RequestUtil;
 import org.apache.tomcat.util.http.ResponseUtil;
 import org.apache.tomcat.util.http.parser.MediaType;
@@ -563,7 +564,7 @@ public class CorsFilter extends GenericFilter {
                     return CORSRequestType.PRE_FLIGHT;
                 }
                 return CORSRequestType.ACTUAL;
-            case "GET":
+            case Method.GET:
             case "HEAD":
                 return CORSRequestType.SIMPLE;
             case "POST":
diff --git a/java/org/apache/catalina/filters/CsrfPreventionFilter.java 
b/java/org/apache/catalina/filters/CsrfPreventionFilter.java
index da3f420a22..8f131439ee 100644
--- a/java/org/apache/catalina/filters/CsrfPreventionFilter.java
+++ b/java/org/apache/catalina/filters/CsrfPreventionFilter.java
@@ -42,6 +42,7 @@ import jakarta.servlet.http.HttpSession;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.http.Method;
 
 /**
  * Provides basic CSRF protection for a web application. The filter assumes 
that:
@@ -444,7 +445,7 @@ public class CsrfPreventionFilter extends 
CsrfPreventionFilterBase {
     }
 
     protected boolean skipNonceCheck(HttpServletRequest request) {
-        if (!Constants.METHOD_GET.equals(request.getMethod())) {
+        if (!Method.GET.equals(request.getMethod())) {
             return false;
         }
 
diff --git a/java/org/apache/catalina/filters/ExpiresFilter.java 
b/java/org/apache/catalina/filters/ExpiresFilter.java
index 1377f5273a..67e86620e0 100644
--- a/java/org/apache/catalina/filters/ExpiresFilter.java
+++ b/java/org/apache/catalina/filters/ExpiresFilter.java
@@ -44,6 +44,7 @@ import jakarta.servlet.http.MappingMatch;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.StringUtils;
+import org.apache.tomcat.util.http.Method;
 
 /**
  * <p>
@@ -1367,7 +1368,7 @@ public class ExpiresFilter extends FilterBase {
 
         // Don't add cache headers unless the request is a GET or a HEAD 
request
         String method = request.getMethod();
-        if (!"GET".equals(method) && !"HEAD".equals(method)) {
+        if (!Method.GET.equals(method) && !"HEAD".equals(method)) {
             if (log.isDebugEnabled()) {
                 log.debug(sm.getString("expiresFilter.invalidMethod", 
request.getRequestURI(), method));
             }
diff --git a/java/org/apache/catalina/servlets/CGIServlet.java 
b/java/org/apache/catalina/servlets/CGIServlet.java
index 76bcd1b89e..cfc1099064 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -58,6 +58,7 @@ import org.apache.catalina.util.IOTools;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.compat.JrePlatform;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.res.StringManager;
 
 
@@ -370,7 +371,7 @@ public final class CGIServlet extends HttpServlet {
                 }
             }
         } else {
-            cgiMethods.add("GET");
+            cgiMethods.add(Method.GET);
             cgiMethods.add("POST");
         }
 
@@ -733,7 +734,7 @@ public final class CGIServlet extends HttpServlet {
             // does not contain an unencoded "=" this is an indexed query.
             // The parsed query string becomes the command line parameters
             // for the cgi command.
-            if (enableCmdLineArguments && (req.getMethod().equals("GET") || 
req.getMethod().equals("POST") ||
+            if (enableCmdLineArguments && (Method.GET.equals(req.getMethod()) 
|| req.getMethod().equals("POST") ||
                     req.getMethod().equals("HEAD"))) {
                 String qs;
                 if (isIncluded) {
diff --git a/java/org/apache/catalina/servlets/DefaultServlet.java 
b/java/org/apache/catalina/servlets/DefaultServlet.java
index a3a98911c6..690602fb09 100644
--- a/java/org/apache/catalina/servlets/DefaultServlet.java
+++ b/java/org/apache/catalina/servlets/DefaultServlet.java
@@ -75,6 +75,7 @@ import org.apache.catalina.util.URLEncoder;
 import org.apache.catalina.webresources.CachedResource;
 import org.apache.tomcat.util.buf.B2CConverter;
 import org.apache.tomcat.util.http.FastHttpDateFormat;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.http.ResponseUtil;
 import org.apache.tomcat.util.http.parser.ContentRange;
 import org.apache.tomcat.util.http.parser.EntityTag;
@@ -1565,7 +1566,7 @@ public class DefaultServlet extends HttpServlet {
             return FULL;
         }
 
-        if (!"GET".equals(request.getMethod()) || !isRangeRequestsSupported()) 
{
+        if (!Method.GET.equals(request.getMethod()) || 
!isRangeRequestsSupported()) {
             // RFC 9110 - Section 14.2: GET is the only method for which range 
handling is defined.
             // Otherwise MUST ignore a Range header field
             return FULL;
@@ -2256,7 +2257,7 @@ public class DefaultServlet extends HttpServlet {
             WebResource resource) {
 
         String method = request.getMethod();
-        if (!"GET".equals(method) && !"HEAD".equals(method)) {
+        if (!Method.GET.equals(method) && !"HEAD".equals(method)) {
             return true;
         }
 
@@ -2364,7 +2365,7 @@ public class DefaultServlet extends HttpServlet {
             // 304 Not Modified.
             // For every other method, 412 Precondition Failed is sent
             // back.
-            if ("GET".equals(request.getMethod()) || 
"HEAD".equals(request.getMethod())) {
+            if (Method.GET.equals(request.getMethod()) || 
"HEAD".equals(request.getMethod())) {
                 response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                 response.setHeader("ETag", resourceETag);
             } else {
diff --git a/java/org/apache/coyote/ajp/Constants.java 
b/java/org/apache/coyote/ajp/Constants.java
index 1fa5700a6e..0f4f38169e 100644
--- a/java/org/apache/coyote/ajp/Constants.java
+++ b/java/org/apache/coyote/ajp/Constants.java
@@ -19,6 +19,8 @@ package org.apache.coyote.ajp;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.tomcat.util.http.Method;
+
 /**
  * Constants.
  *
@@ -105,7 +107,7 @@ public final class Constants {
 
     // Translates integer codes to names of HTTP methods
     private static final String[] methodTransArray =
-            { "OPTIONS", "GET", "HEAD", "POST", "PUT", "DELETE", "TRACE", 
"PROPFIND", "PROPPATCH", "MKCOL", "COPY",
+            { "OPTIONS", Method.GET, "HEAD", "POST", "PUT", "DELETE", "TRACE", 
"PROPFIND", "PROPPATCH", "MKCOL", "COPY",
                     "MOVE", "LOCK", "UNLOCK", "ACL", "REPORT", 
"VERSION-CONTROL", "CHECKIN", "CHECKOUT", "UNCHECKOUT",
                     "SEARCH", "MKWORKSPACE", "UPDATE", "LABEL", "MERGE", 
"BASELINE-CONTROL", "MKACTIVITY" };
 
diff --git a/java/org/apache/coyote/http2/Hpack.java 
b/java/org/apache/coyote/http2/Hpack.java
index 4820c68cda..4df672112d 100644
--- a/java/org/apache/coyote/http2/Hpack.java
+++ b/java/org/apache/coyote/http2/Hpack.java
@@ -18,6 +18,7 @@ package org.apache.coyote.http2;
 
 import java.nio.ByteBuffer;
 
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.res.StringManager;
 
 final class Hpack {
@@ -60,7 +61,7 @@ final class Hpack {
         HeaderField[] fields = new HeaderField[62];
         // note that zero is not used
         fields[1] = new HeaderField(":authority", null);
-        fields[2] = new HeaderField(":method", "GET");
+        fields[2] = new HeaderField(":method", Method.GET);
         fields[3] = new HeaderField(":method", "POST");
         fields[4] = new HeaderField(":path", "/");
         fields[5] = new HeaderField(":path", "/index.html");
diff --git a/java/org/apache/tomcat/websocket/server/UpgradeUtil.java 
b/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
index 44b3670ce6..e35a234d4a 100644
--- a/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
+++ b/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
@@ -38,6 +38,7 @@ import jakarta.websocket.Extension;
 import jakarta.websocket.HandshakeResponse;
 import jakarta.websocket.server.ServerEndpointConfig;
 
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.res.StringManager;
 import org.apache.tomcat.util.security.ConcurrentMessageDigest;
 import org.apache.tomcat.websocket.Constants;
@@ -74,7 +75,7 @@ public class UpgradeUtil {
         return ((request instanceof HttpServletRequest) &&
                 (response instanceof HttpServletResponse) && 
headerContainsToken((HttpServletRequest) request,
                         Constants.UPGRADE_HEADER_NAME, 
Constants.UPGRADE_HEADER_VALUE) &&
-                "GET".equals(((HttpServletRequest) request).getMethod()));
+                Method.GET.equals(((HttpServletRequest) request).getMethod()));
     }
 
 
diff --git 
a/test/org/apache/catalina/authenticator/TestAuthenticatorBaseCorsPreflight.java
 
b/test/org/apache/catalina/authenticator/TestAuthenticatorBaseCorsPreflight.java
index 332636914c..27786efab9 100644
--- 
a/test/org/apache/catalina/authenticator/TestAuthenticatorBaseCorsPreflight.java
+++ 
b/test/org/apache/catalina/authenticator/TestAuthenticatorBaseCorsPreflight.java
@@ -45,6 +45,7 @@ import org.apache.tomcat.util.descriptor.web.FilterMap;
 import org.apache.tomcat.util.descriptor.web.LoginConfig;
 import org.apache.tomcat.util.descriptor.web.SecurityCollection;
 import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
+import org.apache.tomcat.util.http.Method;
 
 @RunWith(Parameterized.class)
 public class TestAuthenticatorBaseCorsPreflight extends TomcatBaseTest {
@@ -53,7 +54,7 @@ public class TestAuthenticatorBaseCorsPreflight extends 
TomcatBaseTest {
     private static final String EMPTY_ORIGIN = "";
     private static final String INVALID_ORIGIN = "http://%20";;
     private static final String SAME_ORIGIN = "http://localhost";;
-    private static final String ALLOWED_METHOD = "GET";
+    private static final String ALLOWED_METHOD = Method.GET;
     private static final String BLOCKED_METHOD = "POST";
     private static final String EMPTY_METHOD = "";
 
@@ -71,8 +72,8 @@ public class TestAuthenticatorBaseCorsPreflight extends 
TomcatBaseTest {
                 Boolean.FALSE });
         parameterSets.add(new Object[] { AllowCorsPreflight.ALWAYS, "/*", 
"OPTIONS", SAME_ORIGIN, ALLOWED_METHOD,
                 Boolean.FALSE });
-        parameterSets.add(
-                new Object[] { AllowCorsPreflight.ALWAYS, "/*", "GET", 
ALLOWED_ORIGIN, ALLOWED_METHOD, Boolean.FALSE });
+        parameterSets.add(new Object[] { AllowCorsPreflight.ALWAYS, "/*", 
Method.GET, ALLOWED_ORIGIN, ALLOWED_METHOD,
+                Boolean.FALSE });
         parameterSets.add(new Object[] { AllowCorsPreflight.ALWAYS, "/*", 
"OPTIONS", ALLOWED_ORIGIN, BLOCKED_METHOD,
                 Boolean.FALSE });
         parameterSets.add(new Object[] { AllowCorsPreflight.ALWAYS, "/*", 
"OPTIONS", ALLOWED_ORIGIN, EMPTY_METHOD,
diff --git a/test/org/apache/catalina/authenticator/TestFormAuthenticatorA.java 
b/test/org/apache/catalina/authenticator/TestFormAuthenticatorA.java
index 4113364000..2acb384255 100644
--- a/test/org/apache/catalina/authenticator/TestFormAuthenticatorA.java
+++ b/test/org/apache/catalina/authenticator/TestFormAuthenticatorA.java
@@ -44,6 +44,7 @@ import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.descriptor.web.LoginConfig;
 import org.apache.tomcat.util.descriptor.web.SecurityCollection;
 import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.websocket.server.WsContextListener;
 
 /*
@@ -108,7 +109,7 @@ public class TestFormAuthenticatorA extends TomcatBaseTest {
 
     @Test
     public void testGetWithCookies() throws Exception {
-        doTest("GET", "GET", NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
+        doTest(Method.GET, Method.GET, NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
     }
 
 
@@ -118,7 +119,7 @@ public class TestFormAuthenticatorA extends TomcatBaseTest {
     // Bug 53584
     @Test
     public void testGetNoServerCookies() throws Exception {
-        doTest("GET", "GET", NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_NO_COOKIES, SERVER_CHANGE_SESSID);
+        doTest(Method.GET, Method.GET, NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_NO_COOKIES, SERVER_CHANGE_SESSID);
     }
 
 
@@ -128,7 +129,7 @@ public class TestFormAuthenticatorA extends TomcatBaseTest {
 
     @Test
     public void testGetNoClientCookies() throws Exception {
-        doTest("GET", "GET", NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
+        doTest(Method.GET, Method.GET, NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
     }
 
 
@@ -137,18 +138,18 @@ public class TestFormAuthenticatorA extends 
TomcatBaseTest {
 
     @Test
     public void testNoChangedSessidWithCookies() throws Exception {
-        doTest("GET", "GET", NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_FREEZE_SESSID);
+        doTest(Method.GET, Method.GET, NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_FREEZE_SESSID);
     }
 
     @Test
     public void testNoChangedSessidWithoutCookies() throws Exception {
-        doTest("GET", "GET", NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_FREEZE_SESSID);
+        doTest(Method.GET, Method.GET, NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_FREEZE_SESSID);
     }
 
     @Test
     public void testTimeoutWithoutCookies() throws Exception {
         String protectedUri =
-                doTest("GET", "GET", NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_FREEZE_SESSID);
+                doTest(Method.GET, Method.GET, NO_100_CONTINUE, 
CLIENT_NO_COOKIES, SERVER_USE_COOKIES, SERVER_FREEZE_SESSID);
 
         // Force session to expire one second from now
         Context context = (Context) 
getTomcatInstance().getHost().findChildren()[0];
@@ -160,13 +161,13 @@ public class TestFormAuthenticatorA extends 
TomcatBaseTest {
         // then try to continue using the expired session to get the
         // protected resource once more.
         // should get login challenge or timeout status 408
-        doTestProtected("GET", protectedUri, NO_100_CONTINUE, 
FormAuthClient.LOGIN_REQUIRED, 1);
+        doTestProtected(Method.GET, protectedUri, NO_100_CONTINUE, 
FormAuthClient.LOGIN_REQUIRED, 1);
     }
 
     // HTTP 1.0 test
     @Test
     public void testGetWithCookiesHttp10() throws Exception {
-        doTest("GET", "GET", NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID,
+        doTest(Method.GET, Method.GET, NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID,
                 CLIENT_USE_HTTP_10);
     }
 
@@ -193,7 +194,7 @@ public class TestFormAuthenticatorA extends TomcatBaseTest {
 
         // Third request - the login was successful so
         // follow the redirect to the protected resource
-        client.doResourceRequest("GET", true, redirectUri, null);
+        client.doResourceRequest(Method.GET, true, redirectUri, null);
         Assert.assertTrue(client.isResponse200());
         Assert.assertTrue(client.isResponseBodyOK());
         String newSessionId = client.getSessionId();
@@ -400,7 +401,7 @@ public class TestFormAuthenticatorA extends TomcatBaseTest {
                 } else {
                     
requestHead.append(PROTECTED_RELATIVE_PATH).append(resourceUri);
                 }
-                if ("GET".equals(method)) {
+                if (Method.GET.equals(method)) {
                     requestHead.append("?role=bar");
                 }
             }
diff --git a/test/org/apache/catalina/authenticator/TestFormAuthenticatorB.java 
b/test/org/apache/catalina/authenticator/TestFormAuthenticatorB.java
index 464d934ea6..56b3c1a0a2 100644
--- a/test/org/apache/catalina/authenticator/TestFormAuthenticatorB.java
+++ b/test/org/apache/catalina/authenticator/TestFormAuthenticatorB.java
@@ -29,6 +29,7 @@ import org.apache.catalina.startup.SimpleHttpClient;
 import org.apache.catalina.startup.TesterMapRealm;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.websocket.server.WsContextListener;
 
 /*
@@ -89,7 +90,7 @@ public class TestFormAuthenticatorB extends TomcatBaseTest {
 
     @Test
     public void testPostNoContinueWithCookies() throws Exception {
-        doTest("POST", "GET", NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
+        doTest("POST", Method.GET, NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
     }
 
     // Bug 49779
@@ -104,7 +105,7 @@ public class TestFormAuthenticatorB extends TomcatBaseTest {
 
     @Test
     public void testPostNoContinueNoServerCookies() throws Exception {
-        doTest("POST", "GET", NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_NO_COOKIES, SERVER_CHANGE_SESSID);
+        doTest("POST", Method.GET, NO_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_NO_COOKIES, SERVER_CHANGE_SESSID);
     }
 
     // variant of Bug 49779
@@ -120,7 +121,7 @@ public class TestFormAuthenticatorB extends TomcatBaseTest {
 
     @Test
     public void testPostNoContinueNoClientCookies() throws Exception {
-        doTest("POST", "GET", NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
+        doTest("POST", Method.GET, NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
     }
 
     // variant of Bug 49779
@@ -298,7 +299,7 @@ public class TestFormAuthenticatorB extends TomcatBaseTest {
                 } else {
                     
requestHead.append(PROTECTED_RELATIVE_PATH).append(resourceUri);
                 }
-                if ("GET".equals(method)) {
+                if (Method.GET.equals(method)) {
                     requestHead.append("?role=bar");
                 }
             }
diff --git a/test/org/apache/catalina/authenticator/TestFormAuthenticatorC.java 
b/test/org/apache/catalina/authenticator/TestFormAuthenticatorC.java
index 9d8d5549bd..88105b3dca 100644
--- a/test/org/apache/catalina/authenticator/TestFormAuthenticatorC.java
+++ b/test/org/apache/catalina/authenticator/TestFormAuthenticatorC.java
@@ -29,6 +29,7 @@ import org.apache.catalina.startup.SimpleHttpClient;
 import org.apache.catalina.startup.TesterMapRealm;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.websocket.server.WsContextListener;
 
 /*
@@ -89,7 +90,7 @@ public class TestFormAuthenticatorC extends TomcatBaseTest {
 
     @Test
     public void testPostWithContinueAndCookies() throws Exception {
-        doTest("POST", "GET", USE_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
+        doTest("POST", Method.GET, USE_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
     }
 
     // Bug 49779
@@ -104,7 +105,7 @@ public class TestFormAuthenticatorC extends TomcatBaseTest {
 
     @Test
     public void testPostWithContinueNoServerCookies() throws Exception {
-        doTest("POST", "GET", USE_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_NO_COOKIES, SERVER_CHANGE_SESSID);
+        doTest("POST", Method.GET, USE_100_CONTINUE, CLIENT_USE_COOKIES, 
SERVER_NO_COOKIES, SERVER_CHANGE_SESSID);
     }
 
     // variant of Bug 49779
@@ -120,12 +121,12 @@ public class TestFormAuthenticatorC extends 
TomcatBaseTest {
 
     @Test
     public void testGetNoClientCookies() throws Exception {
-        doTest("GET", "GET", NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
+        doTest(Method.GET, Method.GET, NO_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
     }
 
     @Test
     public void testPostWithContinueNoClientCookies() throws Exception {
-        doTest("POST", "GET", USE_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
+        doTest("POST", Method.GET, USE_100_CONTINUE, CLIENT_NO_COOKIES, 
SERVER_USE_COOKIES, SERVER_CHANGE_SESSID);
     }
 
     // variant of Bug 49779
@@ -303,7 +304,7 @@ public class TestFormAuthenticatorC extends TomcatBaseTest {
                 } else {
                     
requestHead.append(PROTECTED_RELATIVE_PATH).append(resourceUri);
                 }
-                if ("GET".equals(method)) {
+                if (Method.GET.equals(method)) {
                     requestHead.append("?role=bar");
                 }
             }
diff --git 
a/test/org/apache/catalina/authenticator/TesterDigestAuthenticatorPerformance.java
 
b/test/org/apache/catalina/authenticator/TesterDigestAuthenticatorPerformance.java
index 189f640be6..ef599a10bb 100644
--- 
a/test/org/apache/catalina/authenticator/TesterDigestAuthenticatorPerformance.java
+++ 
b/test/org/apache/catalina/authenticator/TesterDigestAuthenticatorPerformance.java
@@ -39,6 +39,7 @@ import org.apache.catalina.filters.TesterHttpServletResponse;
 import org.apache.catalina.startup.TesterMapRealm;
 import org.apache.tomcat.util.buf.HexUtils;
 import org.apache.tomcat.util.descriptor.web.LoginConfig;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.security.ConcurrentMessageDigest;
 
 /*
@@ -50,7 +51,6 @@ public class TesterDigestAuthenticatorPerformance {
     private static String USER = "user";
     private static String PWD = "pwd";
     private static String ROLE = "role";
-    private static String METHOD = "GET";
     private static String URI = "/protected";
     private static String CONTEXT_PATH = "/foo";
     private static String CLIENT_AUTH_HEADER = "authorization";
@@ -158,7 +158,7 @@ public class TesterDigestAuthenticatorPerformance {
         private DigestAuthenticator authenticator;
 
         private static final String A1 = USER + ":" + REALM + ":" + PWD;
-        private static final String A2 = METHOD + ":" + CONTEXT_PATH + URI;
+        private static final String A2 = Method.GET + ":" + CONTEXT_PATH + URI;
 
         private static final String DIGEST_A1 =
                 HexUtils.toHexString(ConcurrentMessageDigest.digest("MD5", 
A1.getBytes(StandardCharsets.UTF_8)));
@@ -269,7 +269,7 @@ public class TesterDigestAuthenticatorPerformance {
 
         @Override
         public String getMethod() {
-            return METHOD;
+            return Method.GET;
         }
 
         @Override
diff --git a/test/org/apache/catalina/connector/TestRequest.java 
b/test/org/apache/catalina/connector/TestRequest.java
index 109239c0b1..a249b36f5b 100644
--- a/test/org/apache/catalina/connector/TestRequest.java
+++ b/test/org/apache/catalina/connector/TestRequest.java
@@ -57,6 +57,7 @@ import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.EncodedSolidusHandling;
 import org.apache.tomcat.util.buf.StringUtils;
 import org.apache.tomcat.util.descriptor.web.LoginConfig;
+import org.apache.tomcat.util.http.Method;
 
 /**
  * Test case for {@link Request}.
@@ -366,7 +367,7 @@ public class TestRequest extends TomcatBaseTest {
         Bug48692Client client = new Bug48692Client();
 
         // Make sure GET works properly
-        client.doRequest("GET", "foo=bar", null, null, false);
+        client.doRequest(Method.GET, "foo=bar", null, null, false);
 
         Assert.assertTrue("Non-200 response for GET request", 
client.isResponse200());
         Assert.assertEquals("Incorrect response for GET request", "foo=bar", 
client.getResponseBody());
diff --git a/test/org/apache/catalina/core/TestApplicationDispatcher.java 
b/test/org/apache/catalina/core/TestApplicationDispatcher.java
index 91602090c9..71d198a3d9 100644
--- a/test/org/apache/catalina/core/TestApplicationDispatcher.java
+++ b/test/org/apache/catalina/core/TestApplicationDispatcher.java
@@ -34,6 +34,7 @@ import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.descriptor.web.ErrorPage;
+import org.apache.tomcat.util.http.Method;
 
 
 public class TestApplicationDispatcher extends TomcatBaseTest {
@@ -122,7 +123,7 @@ public class TestApplicationDispatcher extends 
TomcatBaseTest {
             resp.setCharacterEncoding(StandardCharsets.UTF_8);
             PrintWriter pw = resp.getWriter();
 
-            if 
("POST".equals(req.getAttribute(RequestDispatcher.ERROR_METHOD)) && 
"GET".equals(req.getMethod())) {
+            if 
("POST".equals(req.getAttribute(RequestDispatcher.ERROR_METHOD)) && 
Method.GET.equals(req.getMethod())) {
                 pw.print("OK");
             } else {
                 pw.print("FAIL");
diff --git a/test/org/apache/catalina/core/TestStandardWrapper.java 
b/test/org/apache/catalina/core/TestStandardWrapper.java
index b65dddeef0..8b157e4997 100644
--- a/test/org/apache/catalina/core/TestStandardWrapper.java
+++ b/test/org/apache/catalina/core/TestStandardWrapper.java
@@ -50,6 +50,7 @@ import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.descriptor.web.LoginConfig;
+import org.apache.tomcat.util.http.Method;
 
 public class TestStandardWrapper extends TomcatBaseTest {
 
@@ -415,7 +416,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
     }
 
     @ServletSecurity(value = @HttpConstraint(EmptyRoleSemantic.PERMIT), 
httpMethodConstraints = {
-            @HttpMethodConstraint(value = "GET", emptyRoleSemantic = 
EmptyRoleSemantic.DENY) })
+            @HttpMethodConstraint(value = Method.GET, emptyRoleSemantic = 
EmptyRoleSemantic.DENY) })
     public static class MethodConstraintServlet extends TestServlet {
         private static final long serialVersionUID = 1L;
     }
diff --git a/test/org/apache/catalina/filters/TestCorsFilter.java 
b/test/org/apache/catalina/filters/TestCorsFilter.java
index f05af1beaf..f42900678d 100644
--- a/test/org/apache/catalina/filters/TestCorsFilter.java
+++ b/test/org/apache/catalina/filters/TestCorsFilter.java
@@ -32,6 +32,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import org.junit.Assert;
 import org.junit.Test;
 
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.http.RequestUtil;
 
 public class TestCorsFilter {
@@ -50,7 +51,7 @@ public class TestCorsFilter {
     public void testDoFilterSimpleGET() throws IOException, ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
TesterFilterConfigs.HTTPS_WWW_APACHE_ORG);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         TesterHttpServletResponse response = new TesterHttpServletResponse();
 
         CorsFilter corsFilter = new CorsFilter();
@@ -177,7 +178,7 @@ public class TestCorsFilter {
     public void testDoFilterSimpleAnyOriginAndSupportsCredentialsDisabled() 
throws IOException, ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
TesterFilterConfigs.HTTPS_WWW_APACHE_ORG);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         TesterHttpServletResponse response = new TesterHttpServletResponse();
 
         CorsFilter corsFilter = new CorsFilter();
@@ -571,7 +572,7 @@ public class TestCorsFilter {
     public void testInitDefaultFilterConfig() throws IOException, 
ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
TesterFilterConfigs.HTTPS_WWW_APACHE_ORG);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         TesterHttpServletResponse response = new TesterHttpServletResponse();
 
         CorsFilter corsFilter = new CorsFilter();
@@ -647,7 +648,7 @@ public class TestCorsFilter {
     public void testNotPreflight() throws IOException, ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
TesterFilterConfigs.HTTPS_WWW_APACHE_ORG);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         TesterHttpServletResponse response = new TesterHttpServletResponse();
 
         CorsFilter corsFilter = new CorsFilter();
@@ -690,7 +691,7 @@ public class TestCorsFilter {
     public void testCheckSimpleRequestTypeAnyOrigin() throws ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
"http://www.w3.org";);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getDefaultFilterConfig());
         CorsFilter.CORSRequestType requestType = 
corsFilter.checkRequestType(request);
@@ -706,7 +707,7 @@ public class TestCorsFilter {
     public void testCheckSimpleRequestTypeGet() throws ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
TesterFilterConfigs.HTTP_TOMCAT_APACHE_ORG);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getDefaultFilterConfig());
         CorsFilter.CORSRequestType requestType = 
corsFilter.checkRequestType(request);
@@ -950,7 +951,7 @@ public class TestCorsFilter {
     public void testCheckNotCORSRequestTypeEmptyOrigin() throws 
ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, "");
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getDefaultFilterConfig());
         CorsFilter.CORSRequestType requestType = 
corsFilter.checkRequestType(request);
@@ -969,7 +970,7 @@ public class TestCorsFilter {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         TesterHttpServletResponse response = new TesterHttpServletResponse();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, "www.example.com");
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getSpecificOriginFilterConfig());
         corsFilter.doFilter(request, response, filterChain);
@@ -984,7 +985,7 @@ public class TestCorsFilter {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         TesterHttpServletResponse response = new TesterHttpServletResponse();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, "null");
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getSpecificOriginFilterConfig());
         corsFilter.doFilter(request, response, filterChain);
@@ -1003,7 +1004,7 @@ public class TestCorsFilter {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         TesterHttpServletResponse response = new TesterHttpServletResponse();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
"http://commons.apache.org";);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getSpecificOriginFilterConfig());
         corsFilter.doFilter(request, response, filterChain);
@@ -1076,7 +1077,7 @@ public class TestCorsFilter {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         TesterHttpServletResponse response = new TesterHttpServletResponse();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
"http://tomcat.apache.org:8080";);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getSpecificOriginFilterConfig());
         corsFilter.doFilter(request, response, filterChain);
@@ -1249,7 +1250,7 @@ public class TestCorsFilter {
     public void testCheckInvalidCRLF1() throws ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
"http://www.w3.org\r\n";);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getDefaultFilterConfig());
         CorsFilter.CORSRequestType requestType = 
corsFilter.checkRequestType(request);
@@ -1260,7 +1261,7 @@ public class TestCorsFilter {
     public void testCheckInvalidCRLF2() throws ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
"http://www.w3.org\r\n";);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getDefaultFilterConfig());
         CorsFilter.CORSRequestType requestType = 
corsFilter.checkRequestType(request);
@@ -1271,7 +1272,7 @@ public class TestCorsFilter {
     public void testCheckInvalidCRLF3() throws ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
"http://www.w3.org%0d%0a";);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getDefaultFilterConfig());
         CorsFilter.CORSRequestType requestType = 
corsFilter.checkRequestType(request);
@@ -1282,7 +1283,7 @@ public class TestCorsFilter {
     public void testCheckInvalidCRLF4() throws ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
"http://www.w3.org%0D%0A";);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         CorsFilter corsFilter = new CorsFilter();
         corsFilter.init(TesterFilterConfigs.getDefaultFilterConfig());
         CorsFilter.CORSRequestType requestType = 
corsFilter.checkRequestType(request);
@@ -1293,7 +1294,7 @@ public class TestCorsFilter {
     public void testDecorateRequestDisabled() throws IOException, 
ServletException {
         TesterHttpServletRequest request = new TesterHttpServletRequest();
         request.setHeader(CorsFilter.REQUEST_HEADER_ORIGIN, 
TesterFilterConfigs.HTTPS_WWW_APACHE_ORG);
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
         TesterHttpServletResponse response = new TesterHttpServletResponse();
 
         CorsFilter corsFilter = new CorsFilter();
diff --git a/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter.java 
b/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter.java
index 9ee91c695a..ba1893b456 100644
--- a/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter.java
+++ b/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter.java
@@ -30,6 +30,7 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
+import org.apache.tomcat.util.http.Method;
 import org.easymock.EasyMock;
 
 public class TestRestCsrfPreventionFilter {
@@ -38,8 +39,6 @@ public class TestRestCsrfPreventionFilter {
 
     private static final String INVALID_NONCE = "invalid-nonce";
 
-    private static final String GET_METHOD = "GET";
-
     private static final String POST_METHOD = "POST";
 
     public static final String ACCEPTED_PATH1 = "/accepted/index1.jsp";
@@ -74,7 +73,7 @@ public class TestRestCsrfPreventionFilter {
 
     @Test
     public void testGetRequestNoSessionNoNonce() throws Exception {
-        setRequestExpectations(GET_METHOD, null, null);
+        setRequestExpectations(Method.GET, null, null);
         filter.doFilter(request, response, filterChain);
         verifyContinueChain();
     }
@@ -112,7 +111,7 @@ public class TestRestCsrfPreventionFilter {
 
     @Test
     public void testGetFetchRequestSessionNoNonce() throws Exception {
-        setRequestExpectations(GET_METHOD, session, 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE);
+        setRequestExpectations(Method.GET, session, 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE);
         
EasyMock.expect(session.getAttribute(Constants.CSRF_REST_NONCE_SESSION_ATTR_NAME)).andReturn(null);
         session.setAttribute(Constants.CSRF_REST_NONCE_SESSION_ATTR_NAME, 
NONCE);
         EasyMock.expectLastCall();
@@ -130,7 +129,7 @@ public class TestRestCsrfPreventionFilter {
 
     @Test
     public void testGetFetchRequestSessionNonce() throws Exception {
-        setRequestExpectations(GET_METHOD, session, 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE);
+        setRequestExpectations(Method.GET, session, 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE);
         
EasyMock.expect(session.getAttribute(Constants.CSRF_REST_NONCE_SESSION_ATTR_NAME)).andReturn(NONCE);
         EasyMock.replay(session);
         filter.doFilter(request, response, filterChain);
@@ -221,7 +220,7 @@ public class TestRestCsrfPreventionFilter {
 
     @Test
     public void testGETRequestFetchNonceAsParameter() throws Exception {
-        setRequestExpectations(GET_METHOD, null, null, new String[] { 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE },
+        setRequestExpectations(Method.GET, null, null, new String[] { 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE },
                 ACCEPTED_PATH1);
         filter.setPathsAcceptingParams(ACCEPTED_PATHS);
         filter.doFilter(request, response, filterChain);
diff --git 
a/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter2.java 
b/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter2.java
index d1c2ca1fa2..5d7b16ca4c 100644
--- a/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter2.java
+++ b/test/org/apache/catalina/filters/TestRestCsrfPreventionFilter2.java
@@ -45,12 +45,12 @@ import org.apache.tomcat.util.descriptor.web.FilterMap;
 import org.apache.tomcat.util.descriptor.web.LoginConfig;
 import org.apache.tomcat.util.descriptor.web.SecurityCollection;
 import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
+import org.apache.tomcat.util.http.Method;
 
 public class TestRestCsrfPreventionFilter2 extends TomcatBaseTest {
     private static final boolean USE_COOKIES = true;
     private static final boolean NO_COOKIES = !USE_COOKIES;
 
-    private static final String METHOD_GET = "GET";
     private static final String METHOD_POST = "POST";
 
     private static final String HTTP_PREFIX = "http://localhost:";;
@@ -121,7 +121,7 @@ public class TestRestCsrfPreventionFilter2 extends 
TomcatBaseTest {
     }
 
     private void testClearGet() throws Exception {
-        doTest(METHOD_GET, LIST_CUSTOMERS, CREDENTIALS, null, NO_COOKIES, 
HttpServletResponse.SC_OK,
+        doTest(Method.GET, LIST_CUSTOMERS, CREDENTIALS, null, NO_COOKIES, 
HttpServletResponse.SC_OK,
                 CUSTOMERS_LIST_RESPONSE, null, false, null);
     }
 
@@ -131,7 +131,7 @@ public class TestRestCsrfPreventionFilter2 extends 
TomcatBaseTest {
     }
 
     private void testGetFirstFetch() throws Exception {
-        doTest(METHOD_GET, LIST_CUSTOMERS, CREDENTIALS, null, NO_COOKIES, 
HttpServletResponse.SC_OK,
+        doTest(Method.GET, LIST_CUSTOMERS, CREDENTIALS, null, NO_COOKIES, 
HttpServletResponse.SC_OK,
                 CUSTOMERS_LIST_RESPONSE, 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE, true, null);
     }
 
@@ -152,7 +152,7 @@ public class TestRestCsrfPreventionFilter2 extends 
TomcatBaseTest {
     }
 
     private void testGetSecondFetch() throws Exception {
-        doTest(METHOD_GET, LIST_CUSTOMERS, CREDENTIALS, null, USE_COOKIES, 
HttpServletResponse.SC_OK,
+        doTest(Method.GET, LIST_CUSTOMERS, CREDENTIALS, null, USE_COOKIES, 
HttpServletResponse.SC_OK,
                 CUSTOMERS_LIST_RESPONSE, 
Constants.CSRF_REST_NONCE_HEADER_FETCH_VALUE, true, validNonce);
     }
 
@@ -199,7 +199,7 @@ public class TestRestCsrfPreventionFilter2 extends 
TomcatBaseTest {
 
         ByteChunk bc = new ByteChunk();
         int rc;
-        if (METHOD_GET.equals(method)) {
+        if (Method.GET.equals(method)) {
             rc = getUrl(HTTP_PREFIX + getPort() + uri, bc, reqHeaders, 
respHeaders);
         } else {
             rc = postUrl(body, HTTP_PREFIX + getPort() + uri, bc, reqHeaders, 
respHeaders);
diff --git a/test/org/apache/catalina/realm/TestRealmBase.java 
b/test/org/apache/catalina/realm/TestRealmBase.java
index ec2df090ad..ce9035a1d5 100644
--- a/test/org/apache/catalina/realm/TestRealmBase.java
+++ b/test/org/apache/catalina/realm/TestRealmBase.java
@@ -36,6 +36,7 @@ import org.apache.tomcat.unittest.TesterRequest;
 import org.apache.tomcat.unittest.TesterResponse;
 import org.apache.tomcat.util.descriptor.web.SecurityCollection;
 import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
+import org.apache.tomcat.util.http.Method;
 
 public class TestRealmBase {
 
@@ -692,7 +693,7 @@ public class TestRealmBase {
         context.addConstraint(deleteConstraint);
 
         // All users should be able to perform a GET
-        request.setMethod("GET");
+        request.setMethod(Method.GET);
 
         SecurityConstraint[] constraintsGet =
                 mapRealm.findSecurityConstraints(request, context);
diff --git a/test/org/apache/catalina/servlets/TestDefaultServletOptions.java 
b/test/org/apache/catalina/servlets/TestDefaultServletOptions.java
index b5fe61aaa9..bfefde3bbb 100644
--- a/test/org/apache/catalina/servlets/TestDefaultServletOptions.java
+++ b/test/org/apache/catalina/servlets/TestDefaultServletOptions.java
@@ -26,13 +26,15 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import org.apache.tomcat.util.http.Method;
+
 @RunWith(Parameterized.class)
 public class TestDefaultServletOptions extends ServletOptionsBaseTest {
 
     @Parameters
     public static Collection<Object[]> inputs() {
         String[] urls = new String[] { COLLECTION_NAME, FILE_NAME, 
UNKNOWN_NAME };
-        String[] methods = new String[] { "GET", "POST", "HEAD", "TRACE", 
"PUT", "DELETE" };
+        String[] methods = new String[] { Method.GET, "POST", "HEAD", "TRACE", 
"PUT", "DELETE" };
 
         List<Object[]> result = new ArrayList<>();
 
diff --git a/test/org/apache/catalina/servlets/TestDefaultServletRedirect.java 
b/test/org/apache/catalina/servlets/TestDefaultServletRedirect.java
index fd42b0f574..92ec5bf686 100644
--- a/test/org/apache/catalina/servlets/TestDefaultServletRedirect.java
+++ b/test/org/apache/catalina/servlets/TestDefaultServletRedirect.java
@@ -41,6 +41,7 @@ import org.apache.catalina.Wrapper;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.http.Method;
 
 
 @RunWith(Parameterized.class)
@@ -80,7 +81,7 @@ public class TestDefaultServletRedirect extends 
TomcatBaseTest {
         Map<String, List<String>> headers = new HashMap<>();
         // Should be redirected
         int rc = methodUrl("http://localhost:"; + getPort() + "/test/jsp", out, 
DEFAULT_CLIENT_TIMEOUT_MS,
-                null, headers, "GET", false);
+                null, headers, Method.GET, false);
 
         Assert.assertEquals("Unexpected status code", redirectStatus, rc);
     }
diff --git 
a/test/org/apache/catalina/servlets/TestWebdavServletOptionCollection.java 
b/test/org/apache/catalina/servlets/TestWebdavServletOptionCollection.java
index c57408caca..9c8b668bd0 100644
--- a/test/org/apache/catalina/servlets/TestWebdavServletOptionCollection.java
+++ b/test/org/apache/catalina/servlets/TestWebdavServletOptionCollection.java
@@ -26,6 +26,8 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import org.apache.tomcat.util.http.Method;
+
 /*
  * Split into multiple tests as a single test takes so long it impacts the time
  * of an entire test run.
@@ -35,7 +37,7 @@ public class TestWebdavServletOptionCollection extends 
ServletOptionsBaseTest {
 
     @Parameters
     public static Collection<Object[]> inputs() {
-        String[] methods = new String[] { "GET", "POST", "HEAD", "TRACE", 
"PUT", "DELETE",
+        String[] methods = new String[] { Method.GET, "POST", "HEAD", "TRACE", 
"PUT", "DELETE",
                 "MKCOL", "LOCK", "UNLOCK", "COPY", "MOVE", "PROPFIND", 
"PROPPATCH" };
 
         List<Object[]> result = new ArrayList<>();
diff --git 
a/test/org/apache/catalina/servlets/TestWebdavServletOptionsFile.java 
b/test/org/apache/catalina/servlets/TestWebdavServletOptionsFile.java
index 7085c7bf7c..5816513928 100644
--- a/test/org/apache/catalina/servlets/TestWebdavServletOptionsFile.java
+++ b/test/org/apache/catalina/servlets/TestWebdavServletOptionsFile.java
@@ -26,6 +26,8 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import org.apache.tomcat.util.http.Method;
+
 /*
  * Split into multiple tests as a single test takes so long it impacts the time
  * of an entire test run.
@@ -35,7 +37,7 @@ public class TestWebdavServletOptionsFile extends 
ServletOptionsBaseTest {
 
     @Parameters
     public static Collection<Object[]> inputs() {
-        String[] methods = new String[] { "GET", "POST", "HEAD", "TRACE", 
"PUT", "DELETE",
+        String[] methods = new String[] { Method.GET, "POST", "HEAD", "TRACE", 
"PUT", "DELETE",
                 "MKCOL", "LOCK", "UNLOCK", "COPY", "MOVE", "PROPFIND", 
"PROPPATCH" };
 
         List<Object[]> result = new ArrayList<>();
diff --git 
a/test/org/apache/catalina/servlets/TestWebdavServletOptionsUnknown.java 
b/test/org/apache/catalina/servlets/TestWebdavServletOptionsUnknown.java
index f5ca12c698..1c0231a5b2 100644
--- a/test/org/apache/catalina/servlets/TestWebdavServletOptionsUnknown.java
+++ b/test/org/apache/catalina/servlets/TestWebdavServletOptionsUnknown.java
@@ -26,6 +26,8 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import org.apache.tomcat.util.http.Method;
+
 /*
  * Split into multiple tests as a single test takes so long it impacts the time
  * of an entire test run.
@@ -35,7 +37,7 @@ public class TestWebdavServletOptionsUnknown extends 
ServletOptionsBaseTest {
 
     @Parameters
     public static Collection<Object[]> inputs() {
-        String[] methods = new String[] { "GET", "POST", "HEAD", "TRACE", 
"PUT", "DELETE",
+        String[] methods = new String[] { Method.GET, "POST", "HEAD", "TRACE", 
"PUT", "DELETE",
                 "MKCOL", "LOCK", "UNLOCK", "COPY", "MOVE", "PROPFIND", 
"PROPPATCH" };
 
         List<Object[]> result = new ArrayList<>();
diff --git a/test/org/apache/catalina/startup/TomcatBaseTest.java 
b/test/org/apache/catalina/startup/TomcatBaseTest.java
index 81b360e929..3bde940d2d 100644
--- a/test/org/apache/catalina/startup/TomcatBaseTest.java
+++ b/test/org/apache/catalina/startup/TomcatBaseTest.java
@@ -80,6 +80,7 @@ import org.apache.catalina.webresources.StandardRoot;
 import org.apache.coyote.http11.Http11NioProtocol;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.collections.CaseInsensitiveKeyMap;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.res.StringManager;
 import org.apache.tomcat.util.scan.StandardJarScanFilter;
 import org.apache.tomcat.util.scan.StandardJarScanner;
@@ -654,7 +655,7 @@ public abstract class TomcatBaseTest extends 
LoggingBaseTest {
 
     public static int getUrl(String path, ByteChunk out, boolean 
followRedirects)
             throws IOException {
-        return methodUrl(path, out, DEFAULT_CLIENT_TIMEOUT_MS, null, null, 
"GET", followRedirects);
+        return methodUrl(path, out, DEFAULT_CLIENT_TIMEOUT_MS, null, null, 
Method.GET, followRedirects);
     }
 
     public static int headUrl(String path, ByteChunk out, Map<String, 
List<String>> resHead)
@@ -670,7 +671,7 @@ public abstract class TomcatBaseTest extends 
LoggingBaseTest {
     public static int getUrl(String path, ByteChunk out, int readTimeout,
             Map<String, List<String>> reqHead, Map<String, List<String>> 
resHead)
             throws IOException {
-        return methodUrl(path, out, readTimeout, reqHead, resHead, "GET");
+        return methodUrl(path, out, readTimeout, reqHead, resHead, Method.GET);
     }
 
     public static int methodUrl(String path, ByteChunk out, int readTimeout,
diff --git a/test/org/apache/catalina/valves/TestAccessLogValve.java 
b/test/org/apache/catalina/valves/TestAccessLogValve.java
index da124a0631..152a5e2bbf 100644
--- a/test/org/apache/catalina/valves/TestAccessLogValve.java
+++ b/test/org/apache/catalina/valves/TestAccessLogValve.java
@@ -45,6 +45,7 @@ import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.json.JSONParser;
 import org.apache.tomcat.util.json.ParseException;
 
@@ -109,7 +110,7 @@ public class TestAccessLogValve extends TomcatBaseTest {
         parameterSets.add(new Object[] {"pct-I", JSON_TYPE, "/", "%I", 
"\\{\"threadName\":\"http-nio2?-" + LOCAL_IP_PATTERN + 
"-auto-\\d+-exec-\\d+\"\\}"});
         parameterSets.add(new Object[] {"pct-l", TEXT_TYPE, "/", "%l", "-"});
         parameterSets.add(new Object[] {"pct-l", JSON_TYPE, "/", "%l", 
"\\{\"logicalUserName\":\"-\"\\}"});
-        parameterSets.add(new Object[] {"pct-m", TEXT_TYPE, "/", "%m", "GET"});
+        parameterSets.add(new Object[] {"pct-m", TEXT_TYPE, "/", "%m", 
Method.GET});
         parameterSets.add(new Object[] {"pct-m", JSON_TYPE, "/", "%m", 
"\\{\"method\":\"GET\"\\}"});
         parameterSets.add(new Object[] {"pct-p", TEXT_TYPE, "/", "%p", 
"\\d+"});
         parameterSets.add(new Object[] {"pct-p", JSON_TYPE, "/", "%p", 
"\\{\"port\":\"\\d+\"\\}"});
diff --git a/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java 
b/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java
index bf71276c09..96ac18cc16 100644
--- a/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java
+++ b/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java
@@ -41,6 +41,7 @@ import org.apache.catalina.Host;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.http.Method;
 
 @RunWith(Parameterized.class)
 public class TestExtendedAccessLogValve extends TomcatBaseTest {
@@ -208,7 +209,7 @@ public class TestExtendedAccessLogValve extends 
TomcatBaseTest {
         if ("time".equals(fieldId)) {
             Assert.assertTrue("Invalid time format", isTimeFormat(value));
         } else if ("cs-method".equals(fieldId)) {
-            Assert.assertEquals("GET", value);
+            Assert.assertEquals(Method.GET, value);
         } else if (fieldId.startsWith("c-ip")) {
             // IPv4 with optional port
             
Assert.assertTrue(value.matches("^\\d{1,3}(\\.\\d{1,3}){3}(:\\d+)?$"));
diff --git a/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java 
b/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
index beb6835d29..5980716b5f 100644
--- a/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
+++ b/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
@@ -45,6 +45,7 @@ import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.catalina.valves.ValveBase;
 import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.http.Method;
 
 /*
  * Implementation note:
@@ -891,9 +892,9 @@ public class TestRewriteValve extends TomcatBaseTest {
 
         ByteChunk res = new ByteChunk();
         int rc = methodUrl("http://localhost:"; + getPort() + request, res, 
DEFAULT_CLIENT_TIMEOUT_MS,
-            reqHead,
-            resHead,
-            "GET", true);
+                reqHead,
+                resHead,
+                Method.GET, true);
         res.setCharset(StandardCharsets.UTF_8);
 
         if (expectedURI == null) {
@@ -944,7 +945,7 @@ public class TestRewriteValve extends TomcatBaseTest {
         ByteChunk res = new ByteChunk();
         Map<String, List<String>> resHead = new HashMap<>();
         int rc = methodUrl("http://localhost:"; + getPort() + request, res, 
DEFAULT_CLIENT_TIMEOUT_MS, null, resHead,
-                "GET", false);
+                Method.GET, false);
         res.setCharset(StandardCharsets.UTF_8);
 
         if (expectedURI == null) {
@@ -986,7 +987,7 @@ public class TestRewriteValve extends TomcatBaseTest {
         reqHead.put("cookie", Arrays.asList("test=data"));
         ByteChunk res = new ByteChunk();
         int rc = methodUrl("http://localhost:"; + getPort() + 
"/source/cookieTest", res, DEFAULT_CLIENT_TIMEOUT_MS,
-                reqHead, null, "GET", false);
+                reqHead, null, Method.GET, false);
 
         Assert.assertEquals(HttpServletResponse.SC_OK, rc);
 
diff --git a/test/org/apache/coyote/ajp/SimpleAjpClient.java 
b/test/org/apache/coyote/ajp/SimpleAjpClient.java
index f4ba2a64d6..ed3a3c837b 100644
--- a/test/org/apache/coyote/ajp/SimpleAjpClient.java
+++ b/test/org/apache/coyote/ajp/SimpleAjpClient.java
@@ -23,6 +23,8 @@ import java.util.Locale;
 
 import javax.net.SocketFactory;
 
+import org.apache.tomcat.util.http.Method;
+
 /**
  * AJP client that is not (yet) a full AJP client implementation as it just 
provides the functionality required for the
  * unit tests. The client uses blocking IO throughout.
@@ -77,7 +79,7 @@ public class SimpleAjpClient {
             case "OPTIONS":
                 this.method = 1;
                 break;
-            case "GET":
+            case Method.GET:
                 this.method = 2;
                 break;
             case "HEAD":
@@ -165,7 +167,7 @@ public class SimpleAjpClient {
             case 1:
                 return "OPTIONS";
             case 2:
-                return "GET";
+                return Method.GET;
             case 3:
                 return "HEAD";
             case 4:
diff --git a/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java 
b/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
index 65bfb28b5a..627a1a05b5 100644
--- a/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
+++ b/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
@@ -41,6 +41,7 @@ import org.apache.catalina.Globals;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.res.StringManager;
 
 public class TestAbstractAjpProcessor extends TomcatBaseTest {
@@ -710,12 +711,12 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
 
     @Test
     public void testZeroLengthRequestBodyGetA() throws Exception {
-        doTestZeroLengthRequestBody("GET", true);
+        doTestZeroLengthRequestBody(Method.GET, true);
     }
 
     @Test
     public void testZeroLengthRequestBodyGetB() throws Exception {
-        doTestZeroLengthRequestBody("GET", false);
+        doTestZeroLengthRequestBody(Method.GET, false);
     }
 
     @Test
@@ -1107,7 +1108,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
             response.setCharacterEncoding("UTF-8");
 
             try (PrintWriter w = response.getWriter()) {
-                w.println("Method: " + (isPost ? "POST" : "GET") + ". Reading 
request body...");
+                w.println("Method: " + (isPost ? "POST" : Method.GET) + ". 
Reading request body...");
                 w.println("Request Body length in bytes: " + readCount);
             }
         }
diff --git a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java 
b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
index ae30776f0a..7772c1aaa6 100644
--- a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
+++ b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
@@ -34,6 +34,7 @@ import org.apache.catalina.startup.SimpleHttpClient;
 import org.apache.catalina.startup.TesterServlet;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.http.Method;
 
 public class TestHttp11InputBuffer extends TomcatBaseTest {
 
@@ -552,7 +553,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
     public void testInvalidMethod() {
 
         String[] request = new String[1];
-        request[0] = "GET" + (char) 0 + " /test HTTP/1.1" + CRLF + "Host: 
localhost:8080" + CRLF + "Connection: close" +
+        request[0] = Method.GET + (char) 0 + " /test HTTP/1.1" + CRLF + "Host: 
localhost:8080" + CRLF + "Connection: close" +
                 CRLF + CRLF;
 
         InvalidClient client = new InvalidClient(request);
diff --git a/test/org/apache/coyote/http2/Http2TestBase.java 
b/test/org/apache/coyote/http2/Http2TestBase.java
index 2c2fb4b7b2..b9e324a339 100644
--- a/test/org/apache/coyote/http2/Http2TestBase.java
+++ b/test/org/apache/coyote/http2/Http2TestBase.java
@@ -63,6 +63,7 @@ import org.apache.coyote.http2.Http2Parser.Input;
 import org.apache.coyote.http2.Http2Parser.Output;
 import org.apache.tomcat.util.compat.JrePlatform;
 import org.apache.tomcat.util.http.FastHttpDateFormat;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.http.MimeHeaders;
 import org.apache.tomcat.util.http.parser.Priority;
 import org.apache.tomcat.util.net.TesterSupport;
@@ -224,7 +225,7 @@ public abstract class Http2TestBase extends TomcatBaseTest {
     protected void buildGetRequest(byte[] frameHeader, ByteBuffer 
headersPayload, byte[] padding, int streamId,
             String url) {
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", url));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -262,7 +263,7 @@ public abstract class Http2TestBase extends TomcatBaseTest {
 
     protected void buildSimpleGetRequestPart1(byte[] frameHeader, ByteBuffer 
headersPayload, int streamId) {
         List<Header> headers = new ArrayList<>(3);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/simple"));
 
diff --git a/test/org/apache/coyote/http2/TestHttp2Limits.java 
b/test/org/apache/coyote/http2/TestHttp2Limits.java
index e7435d57a0..c1281e85ac 100644
--- a/test/org/apache/coyote/http2/TestHttp2Limits.java
+++ b/test/org/apache/coyote/http2/TestHttp2Limits.java
@@ -32,6 +32,7 @@ import org.junit.Test;
 import org.apache.catalina.connector.Connector;
 import org.apache.coyote.http11.AbstractHttp11Protocol;
 import org.apache.coyote.http2.HpackEncoder.State;
+import org.apache.tomcat.util.http.Method;
 import org.apache.tomcat.util.http.MimeHeaders;
 import org.apache.tomcat.util.res.StringManager;
 
@@ -324,7 +325,7 @@ public class TestHttp2Limits extends Http2TestBase {
     private void populateHeadersPayload(ByteBuffer headersPayload, 
List<String[]> customHeaders, String path)
             throws Exception {
         MimeHeaders headers = new MimeHeaders();
-        headers.addValue(":method").setString("GET");
+        headers.addValue(":method").setString(Method.GET);
         headers.addValue(":scheme").setString("http");
         headers.addValue(":path").setString(path);
         headers.addValue(":authority").setString("localhost:" + getPort());
diff --git a/test/org/apache/coyote/http2/TestHttp2Section_8_1.java 
b/test/org/apache/coyote/http2/TestHttp2Section_8_1.java
index 45a6864f09..54f2e50431 100644
--- a/test/org/apache/coyote/http2/TestHttp2Section_8_1.java
+++ b/test/org/apache/coyote/http2/TestHttp2Section_8_1.java
@@ -27,6 +27,7 @@ import org.apache.catalina.connector.Connector;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.coyote.ContinueResponseTiming;
 import org.apache.coyote.http11.AbstractHttp11Protocol;
+import org.apache.tomcat.util.http.Method;
 
 /**
  * Unit tests for Section 8.1 of <a 
href="https://tools.ietf.org/html/rfc7540";>RFC 7540</a>. <br>
@@ -195,7 +196,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(5);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/simple"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -210,7 +211,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(5);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/simple"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -228,7 +229,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/simple"));
         headers.add(new Header("x-test", "test"));
@@ -260,7 +261,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/simple"));
         headers.add(new Header("host", "localhost:" + getPort()));
@@ -284,7 +285,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/simple"));
         headers.add(new Header("host", "localhost:" + getPort()));
@@ -309,7 +310,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
         headers.add(new Header(":path", "/simple"));
@@ -334,7 +335,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":authority", "localhost"));
         headers.add(new Header(":path", "/simple"));
@@ -396,7 +397,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
 
     private void doTestHostHeaderInconsistent(String authority, String host) 
throws Exception {
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":authority", authority));
         headers.add(new Header(":path", "/simple"));
@@ -445,7 +446,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "abcd"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
         headers.add(new Header(":path", "/simple"));
@@ -470,7 +471,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "ab!cd"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
         headers.add(new Header(":path", "/simple"));
@@ -485,7 +486,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", ""));
         headers.add(new Header(":authority", "localhost:" + getPort()));
         headers.add(new Header(":path", "/simple"));
@@ -500,7 +501,7 @@ public class TestHttp2Section_8_1 extends Http2TestBase {
         http2Connect();
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":authority", "localhost:" + getPort()));
         headers.add(new Header(":path", "/simple"));
         headers.add(new Header("host", "localhost:" + getPort()));
diff --git a/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java 
b/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java
index 5fb1505965..a78682446f 100644
--- a/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java
+++ b/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java
@@ -24,6 +24,7 @@ import org.junit.Test;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.startup.Tomcat;
+import org.apache.tomcat.util.http.Method;
 
 public class TestHttp2UpgradeHandler extends Http2TestBase {
 
@@ -130,7 +131,7 @@ public class TestHttp2UpgradeHandler extends Http2TestBase {
 
         openClientConnection();
 
-        byte[] upgradeRequest = ((usePost ? "POST" : "GET") + " /" + 
(useReader ? "?useReader=true " : " ") +
+        byte[] upgradeRequest = ((usePost ? "POST" : Method.GET) + " /" + 
(useReader ? "?useReader=true " : " ") +
                 "HTTP/1.1\r\n" + "Host: localhost:" + getPort() + "\r\n" + 
"Content-Length: 18\r\n" +
                 "Connection: Upgrade,HTTP2-Settings\r\n" + "Upgrade: h2c\r\n" 
+ EMPTY_HTTP2_SETTINGS_HEADER + "\r\n" +
                 "Small request body").getBytes(StandardCharsets.ISO_8859_1);
diff --git a/test/org/apache/coyote/http2/TestStreamProcessor.java 
b/test/org/apache/coyote/http2/TestStreamProcessor.java
index bfc4d8595b..79e6a9ca3a 100644
--- a/test/org/apache/coyote/http2/TestStreamProcessor.java
+++ b/test/org/apache/coyote/http2/TestStreamProcessor.java
@@ -41,6 +41,7 @@ import org.apache.catalina.connector.ResponseFacade;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.tomcat.util.compat.JrePlatform;
 import org.apache.tomcat.util.http.FastHttpDateFormat;
+import org.apache.tomcat.util.http.Method;
 
 public class TestStreamProcessor extends Http2TestBase {
 
@@ -138,7 +139,7 @@ public class TestStreamProcessor extends Http2TestBase {
         ByteBuffer headersPayload = ByteBuffer.allocate(128);
 
         List<Header> headers = new ArrayList<>(3);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/index.html"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -193,7 +194,7 @@ public class TestStreamProcessor extends Http2TestBase {
         ByteBuffer headersPayload = ByteBuffer.allocate(128);
 
         List<Header> headers = new ArrayList<>(3);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/noContent"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -282,7 +283,7 @@ public class TestStreamProcessor extends Http2TestBase {
         ByteBuffer headersPayload = ByteBuffer.allocate(128);
 
         List<Header> headers = new ArrayList<>(5);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/index.html"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -327,7 +328,7 @@ public class TestStreamProcessor extends Http2TestBase {
         ByteBuffer headersPayload = ByteBuffer.allocate(128);
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/index^html"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -371,7 +372,7 @@ public class TestStreamProcessor extends Http2TestBase {
         ByteBuffer headersPayload = ByteBuffer.allocate(128);
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/index.html?foo=[]"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -417,7 +418,7 @@ public class TestStreamProcessor extends Http2TestBase {
         ByteBuffer headersPayload = ByteBuffer.allocate(128);
 
         List<Header> headers = new ArrayList<>(4);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/index.html?foo=[]"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
@@ -524,7 +525,7 @@ public class TestStreamProcessor extends Http2TestBase {
         ByteBuffer headersPayload = ByteBuffer.allocate(128);
 
         List<Header> headers = new ArrayList<>(3);
-        headers.add(new Header(":method", "GET"));
+        headers.add(new Header(":method", Method.GET));
         headers.add(new Header(":scheme", "http"));
         headers.add(new Header(":path", "/compression"));
         headers.add(new Header(":authority", "localhost:" + getPort()));
diff --git 
a/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java 
b/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java
index a9ce27a6b8..34a547b457 100644
--- a/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java
+++ b/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java
@@ -31,6 +31,7 @@ import org.junit.Test;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.http.Method;
 
 public class TestSecurityConstraint {
 
@@ -50,7 +51,7 @@ public class TestSecurityConstraint {
         GET_ONLY = new SecurityConstraint();
         GET_ONLY.addAuthRole(ROLE1);
         SecurityCollection scGetOnly = new SecurityCollection();
-        scGetOnly.addMethod("GET");
+        scGetOnly.addMethod(Method.GET);
         scGetOnly.addPatternDecoded(URL_PATTERN);
         scGetOnly.setName("GET-ONLY");
         GET_ONLY.addCollection(scGetOnly);
@@ -66,7 +67,7 @@ public class TestSecurityConstraint {
         GET_OMIT = new SecurityConstraint();
         GET_OMIT.addAuthRole(ROLE1);
         SecurityCollection scGetOmit = new SecurityCollection();
-        scGetOmit.addOmittedMethod("GET");
+        scGetOmit.addOmittedMethod(Method.GET);
         scGetOmit.addPatternDecoded(URL_PATTERN);
         scGetOmit.setName("GET_OMIT");
         GET_OMIT.addCollection(scGetOmit);
@@ -143,12 +144,12 @@ public class TestSecurityConstraint {
 
         // Example 13-5
         // @ServletSecurity((httpMethodConstraints = {
-        //     @HttpMethodConstraint(value = "GET", rolesAllowed = "R1"),
+        //     @HttpMethodConstraint(value = Method.GET, rolesAllowed = "R1"),
         //     @HttpMethodConstraint(value = "POST", rolesAllowed = "R1",
         //     transportGuarantee = TransportGuarantee.CONFIDENTIAL)
         // })
         hmces.clear();
-        hmces.add(new HttpMethodConstraintElement("GET",
+        hmces.add(new HttpMethodConstraintElement(Method.GET,
                 new HttpConstraintElement(
                         ServletSecurity.TransportGuarantee.NONE, ROLE1)));
         hmces.add(new HttpMethodConstraintElement("POST",
@@ -166,7 +167,7 @@ public class TestSecurityConstraint {
             
Assert.assertTrue(result[i].findCollections()[0].findPattern(URL_PATTERN));
             Assert.assertEquals(1, 
result[i].findCollections()[0].findMethods().length);
             String method = result[i].findCollections()[0].findMethods()[0];
-            if ("GET".equals(method)) {
+            if (Method.GET.equals(method)) {
                 
Assert.assertEquals(ServletSecurity.TransportGuarantee.NONE.name(),
                         result[i].getUserConstraint());
             } else if ("POST".equals(method)) {
@@ -179,9 +180,9 @@ public class TestSecurityConstraint {
 
         // Example 13-6
         // @ServletSecurity(value = @HttpConstraint(rolesAllowed = "R1"),
-        //     httpMethodConstraints = @HttpMethodConstraint("GET"))
+        //     httpMethodConstraints = @HttpMethodConstraint(Method.GET))
         hmces.clear();
-        hmces.add(new HttpMethodConstraintElement("GET"));
+        hmces.add(new HttpMethodConstraintElement(Method.GET));
         element = new ServletSecurityElement(
                 new HttpConstraintElement(
                         ServletSecurity.TransportGuarantee.NONE,
@@ -193,11 +194,11 @@ public class TestSecurityConstraint {
         for (int i = 0; i < 2; i++) {
             
Assert.assertTrue(result[i].findCollections()[0].findPattern(URL_PATTERN));
             if (result[i].findCollections()[0].findMethods().length == 1) {
-                Assert.assertEquals("GET",
+                Assert.assertEquals(Method.GET,
                         result[i].findCollections()[0].findMethods()[0]);
                 Assert.assertFalse(result[i].getAuthConstraint());
             } else if 
(result[i].findCollections()[0].findOmittedMethods().length == 1) {
-                Assert.assertEquals("GET",
+                Assert.assertEquals(Method.GET,
                         
result[i].findCollections()[0].findOmittedMethods()[0]);
                 Assert.assertTrue(result[i].getAuthConstraint());
                 Assert.assertEquals(1, result[i].findAuthRoles().length);
@@ -303,7 +304,7 @@ public class TestSecurityConstraint {
         // Should list GET as an omitted method
         Assert.assertEquals(0, sc.findMethods().length);
         Assert.assertEquals(1, sc.findOmittedMethods().length);
-        Assert.assertEquals("GET", sc.findOmittedMethods()[0]);
+        Assert.assertEquals(Method.GET, sc.findOmittedMethods()[0]);
     }
 
 
@@ -339,7 +340,7 @@ public class TestSecurityConstraint {
         // Should list GET as an method
         Assert.assertEquals(0, sc.findOmittedMethods().length);
         Assert.assertEquals(1, sc.findMethods().length);
-        Assert.assertEquals("GET", sc.findMethods()[0]);
+        Assert.assertEquals(Method.GET, sc.findMethods()[0]);
     }
 
 
@@ -398,7 +399,7 @@ public class TestSecurityConstraint {
         Assert.assertEquals(2, sc.findOmittedMethods().length);
         HashSet<String> omittedMethods = new HashSet<>();
         omittedMethods.addAll(Arrays.asList(sc.findOmittedMethods()));
-        Assert.assertTrue(omittedMethods.remove("GET"));
+        Assert.assertTrue(omittedMethods.remove(Method.GET));
         Assert.assertTrue(omittedMethods.remove("POST"));
     }
 
@@ -447,6 +448,6 @@ public class TestSecurityConstraint {
         // Should list GET as a method
         Assert.assertEquals(1, sc.findMethods().length);
         Assert.assertEquals(0, sc.findOmittedMethods().length);
-        Assert.assertEquals("GET", sc.findMethods()[0]);
+        Assert.assertEquals(Method.GET, sc.findMethods()[0]);
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to