diff --git a/common/src/java/org/apache/hive/http/HttpServer.java b/common/src/java/org/apache/hive/http/HttpServer.java index 24c5422a18..88da1a8c97 100644 --- a/common/src/java/org/apache/hive/http/HttpServer.java +++ b/common/src/java/org/apache/hive/http/HttpServer.java @@ -413,7 +413,7 @@ WebAppContext createWebAppContext(Builder b) { /** * Secure the web server with kerberos (AuthenticationFilter). */ - void setupSpnegoFilter(Builder b) throws IOException { + void setupSpnegoFilter(Builder b, ServletContextHandler ctx) throws IOException { Map params = new HashMap(); params.put("kerberos.principal", SecurityUtil.getServerPrincipal(b.spnegoPrincipal, b.host)); @@ -422,8 +422,7 @@ void setupSpnegoFilter(Builder b) throws IOException { FilterHolder holder = new FilterHolder(); holder.setClassName(AuthenticationFilter.class.getName()); holder.setInitParameters(params); - - ServletHandler handler = webAppContext.getServletHandler(); + ServletHandler handler = ctx.getServletHandler(); handler.addFilterWithMapping( holder, "/*", FilterMapping.ALL); } @@ -516,7 +515,7 @@ private void createWebServer(final Builder b) throws IOException { if (b.useSPNEGO) { // Secure the web server with kerberos - setupSpnegoFilter(b); + setupSpnegoFilter(b, webAppContext); } if (b.enableCORS) { @@ -593,6 +592,9 @@ private void initializeWebServer(final Builder b, int queueSize) throws IOExcept ServletContextHandler logCtx = new ServletContextHandler(contexts, "/logs"); setContextAttributes(logCtx.getServletContext(), b.contextAttrs); + if(b.useSPNEGO) { + setupSpnegoFilter(b,logCtx); + } logCtx.addServlet(AdminAuthorizedServlet.class, "/*"); logCtx.setResourceBase(logDir); logCtx.setDisplayName("logs");