Skip to content

Commit

Permalink
HBASE-26767 Rest server should not use a large Header Cache.
Browse files Browse the repository at this point in the history
Closes #4123

Co-authored-by: Tak Lon (Stephen) Wu <taklwu@apache.org>
Signed-off-by: Tak Lon (Stephen) Wu <taklwu@apache.org>
Signed-off-by: Josh Elser <elserj@apache.org>
  • Loading branch information
2 people authored and joshelser committed Feb 23, 2022
1 parent 87e993d commit 6b10e24
Showing 1 changed file with 5 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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 = "/*";

Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 6b10e24

Please sign in to comment.