From 6b10e242c998a56c2a6149774462b634c9a03dbc Mon Sep 17 00:00:00 2001 From: Sergey Soldatov Date: Wed, 23 Feb 2022 15:29:37 -0500 Subject: [PATCH] HBASE-26767 Rest server should not use a large Header Cache. Closes #4123 Co-authored-by: Tak Lon (Stephen) Wu Signed-off-by: Tak Lon (Stephen) Wu Signed-off-by: Josh Elser --- .../main/java/org/apache/hadoop/hbase/rest/RESTServer.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java index dfcb8e98b37c..40dfa90691bb 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java @@ -93,6 +93,8 @@ public class RESTServer implements Constants { static final String REST_CSRF_METHODS_TO_IGNORE_DEFAULT = "GET,OPTIONS,HEAD,TRACE"; public static final String SKIP_LOGIN_KEY = "hbase.rest.skip.login"; static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k + static final String HTTP_HEADER_CACHE_SIZE = "hbase.rest.http.header.cache.size"; + static final int DEFAULT_HTTP_HEADER_CACHE_SIZE = Character.MAX_VALUE -1; private static final String PATH_SPEC_ANY = "/*"; @@ -293,10 +295,12 @@ public synchronized void run() throws Exception { String host = servlet.getConfiguration().get("hbase.rest.host", "0.0.0.0"); int servicePort = servlet.getConfiguration().getInt("hbase.rest.port", 8080); + int httpHeaderCacheSize = servlet.getConfiguration().getInt(HTTP_HEADER_CACHE_SIZE, + DEFAULT_HTTP_HEADER_CACHE_SIZE); HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.setSecureScheme("https"); httpConfig.setSecurePort(servicePort); - httpConfig.setHeaderCacheSize(DEFAULT_HTTP_MAX_HEADER_SIZE); + httpConfig.setHeaderCacheSize(httpHeaderCacheSize); httpConfig.setRequestHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE); httpConfig.setResponseHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE); httpConfig.setSendServerVersion(false);