[ https://issues.apache.org/jira/browse/HIVE-26071?focusedWorklogId=763298&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-763298 ]
ASF GitHub Bot logged work on HIVE-26071: ----------------------------------------- Author: ASF GitHub Bot Created on: 28/Apr/22 05:27 Start Date: 28/Apr/22 05:27 Worklog Time Spent: 10m Work Description: dengzhhu653 commented on code in PR #3233: URL: https://github.com/apache/hive/pull/3233#discussion_r860498124 ########## standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HmsThriftHttpServlet.java: ########## @@ -39,75 +48,119 @@ public class HmsThriftHttpServlet extends TServlet { .getLogger(HmsThriftHttpServlet.class); private static final String X_USER = MetaStoreUtils.USER_NAME_HTTP_HEADER; - private final boolean isSecurityEnabled; + private final boolean jwtAuthEnabled; + public static final String AUTHORIZATION = "Authorization"; + private JWTValidator jwtValidator; + private Configuration conf; public HmsThriftHttpServlet(TProcessor processor, - TProtocolFactory inProtocolFactory, TProtocolFactory outProtocolFactory) { - super(processor, inProtocolFactory, outProtocolFactory); - // This should ideally be reveiving an instance of the Configuration which is used for the check + TProtocolFactory protocolFactory, Configuration conf) { + super(processor, protocolFactory); + this.conf = conf; isSecurityEnabled = UserGroupInformation.isSecurityEnabled(); + if (MetastoreConf.getVar(conf, + ConfVars.THRIFT_METASTORE_AUTHENTICATION).equalsIgnoreCase("jwt")) { + jwtAuthEnabled = true; + } else { + jwtAuthEnabled = false; + jwtValidator = null; + } } - public HmsThriftHttpServlet(TProcessor processor, - TProtocolFactory protocolFactory) { - super(processor, protocolFactory); - isSecurityEnabled = UserGroupInformation.isSecurityEnabled(); + public void init() throws ServletException { + super.init(); + if (jwtAuthEnabled) { + try { + jwtValidator = new JWTValidator(this.conf); + } catch (Exception e) { + throw new ServletException("Failed to initialize HmsThriftHttpServlet." + + " Error: " + e); + } + } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - Enumeration<String> headerNames = request.getHeaderNames(); if (LOG.isDebugEnabled()) { - LOG.debug("Logging headers in request"); + LOG.debug(" Logging headers in doPost request"); Review Comment: nit: extra empty space Issue Time Tracking ------------------- Worklog Id: (was: 763298) Time Spent: 40m (was: 0.5h) > JWT authentication for Thrift over HTTP in HiveMetaStore > -------------------------------------------------------- > > Key: HIVE-26071 > URL: https://issues.apache.org/jira/browse/HIVE-26071 > Project: Hive > Issue Type: New Feature > Components: Standalone Metastore > Reporter: Sourabh Goyal > Assignee: Sourabh Goyal > Priority: Major > Labels: pull-request-available > Time Spent: 40m > Remaining Estimate: 0h > > HIVE-25575 recently added a support for JWT authentication in HS2. This Jira > aims to add the same feature in HMS -- This message was sent by Atlassian Jira (v8.20.7#820007)