From 7993fb5b8127a219e6c936206b5c5c0790e82946 Mon Sep 17 00:00:00 2001 From: Eric Yang Date: Sun, 16 Oct 2016 20:32:48 -0700 Subject: [PATCH] HADOOP-13707. Skip authorization for anonymous user to access Hadoop web interface in non-secure environment. (Yuanbo Liu via eyang) (cherry picked from commit dc308e98b9f8f7458a28a015515876ddea5666f2) With Addendum patch --- .../java/org/apache/hadoop/metrics/MetricsServlet.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics/MetricsServlet.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics/MetricsServlet.java index b330613ae2e..275fa81be48 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics/MetricsServlet.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics/MetricsServlet.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; +import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -109,8 +110,13 @@ public class MetricsServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!HttpServer2.isInstrumentationAccessAllowed(getServletContext(), - request, response)) { + // If user is a static user and auth Type is null, that means + // there is a non-security environment and no need authorization, + // otherwise, do the authorization. + final ServletContext servletContext = getServletContext(); + if (!HttpServer2.isStaticUserAndNoneAuthType(servletContext, request) && + !HttpServer2.isInstrumentationAccessAllowed(servletContext, + request, response)) { return; }