Dian Fu created HADOOP-11330:
--------------------------------

             Summary: KMSClientProvider should use 
PseudoDelegationTokenAuthenticator as the Authenticator when security is 
disabled to improve performance
                 Key: HADOOP-11330
                 URL: https://issues.apache.org/jira/browse/HADOOP-11330
             Project: Hadoop Common
          Issue Type: Improvement
          Components: kms, security
            Reporter: Dian Fu


In the class KMSClientProvider, it connect with KMS with the following method:
{code}
private HttpURLConnection createConnection(final URL url, String method)
      throws IOException {
    HttpURLConnection conn;
    try {
      ...
      // creating the HTTP connection using the current UGI at constructor time
      conn = loginUgi.doAs(new PrivilegedExceptionAction<HttpURLConnection>() {
        @Override
        public HttpURLConnection run() throws Exception {
          DelegationTokenAuthenticatedURL authUrl =
              new DelegationTokenAuthenticatedURL(configurator);
          return authUrl.openConnection(url, authToken, doAsUser);
        }
      });
    } catch (IOException ex) {
      throw ex;
    } catch (UndeclaredThrowableException ex) {
      throw new IOException(ex.getUndeclaredThrowable());
    } catch (Exception ex) {
      throw new IOException(ex);
    }
...
}
{code} By default, DelegationTokenAuthenticatedURL will use 
KerberosDelegationTokenAuthenticator as the Authenticator. We can set 
PseudoDelegationTokenAuthenticator  as the Authenticator when security is 
disabled to improve performance. This will reduce one authentication process 
between client and KMS server.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to