Arpit Agarwal created HDFS-5275:
-----------------------------------
Summary: Target port chosen by Hftp/Hsftp for getting delegation
token may be incorrect
Key: HDFS-5275
URL: https://issues.apache.org/jira/browse/HDFS-5275
Project: Hadoop HDFS
Issue Type: Bug
Components: security
Affects Versions: 3.0.0
Reporter: Arpit Agarwal
The port selection to get the delegation token is confusing. Also the code
documentation and tests appear to conflict.
The comment in {{HftpFileSystem#getCanonicalServiceName}} seems to indicate
that the configured secure port should be chosen, ignoring the port from the
URI.
{code}
public String getCanonicalServiceName() {
// unlike other filesystems, hftp's service is the secure port, not the
// actual port in the uri
return SecurityUtil.buildTokenService(nnSecureUri).toString();
}
{code}
However {{TestHftpFileSystem#testHsftpCustomUriPortWithCustomDefaultPorts}}
tests that the returned port is the one from the URI.
{code}
@Test
public void testHsftpCustomUriPortWithCustomDefaultPorts() throws IOException {
conf.setInt(DFSConfigKeys.DFS_NAMENODE_HTTPS_PORT_KEY, 456);
URI uri = URI.create("hsftp://localhost:789");
HsftpFileSystem fs = (HsftpFileSystem) FileSystem.get(uri, conf);
assertEquals(456, fs.getDefaultPort());
assertEquals(456, fs.getDefaultSecurePort());
assertEquals(uri, fs.getUri());
assertEquals(
"127.0.0.1:789",
fs.getCanonicalServiceName()
);
}
{code}
The test still passes because of a confusing overload of getNamenodeSecureAddr
by HsftpFileSystem.
Either the code needs to be fixed or we should document the behavior.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira