HDFS-4548. Webhdfs doesn't renegotiate SPNEGO token. Contributed by Daryn Sharp.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1464548 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d088d2ddea
commit
547d2b0bac
@ -2490,6 +2490,8 @@ Release 0.23.7 - UNRELEASED
|
||||
|
||||
HDFS-4649. Webhdfs cannot list large directories (daryn via kihwal)
|
||||
|
||||
HDFS-4548. Webhdfs doesn't renegotiate SPNEGO token (daryn via kihwal)
|
||||
|
||||
Release 0.23.6 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -156,7 +156,6 @@ public static boolean isEnabled(final Configuration conf, final Log log) {
|
||||
private URI uri;
|
||||
private boolean hasInitedToken;
|
||||
private Token<?> delegationToken;
|
||||
private final AuthenticatedURL.Token authToken = new AuthenticatedURL.Token();
|
||||
private RetryPolicy retryPolicy = null;
|
||||
private Path workingDir;
|
||||
|
||||
@ -481,6 +480,8 @@ private HttpURLConnection openHttpUrlConnection(final URL url)
|
||||
try {
|
||||
if (op.getRequireAuth()) {
|
||||
LOG.debug("open AuthenticatedURL connection");
|
||||
UserGroupInformation.getCurrentUser().checkTGTAndReloginFromKeytab();
|
||||
final AuthenticatedURL.Token authToken = new AuthenticatedURL.Token();
|
||||
conn = new AuthenticatedURL(AUTH).openConnection(url, authToken);
|
||||
} else {
|
||||
LOG.debug("open URL connection");
|
||||
@ -1006,20 +1007,12 @@ private static WebHdfsFileSystem getWebHdfs(
|
||||
@Override
|
||||
public long renew(final Token<?> token, final Configuration conf
|
||||
) throws IOException, InterruptedException {
|
||||
final UserGroupInformation ugi = UserGroupInformation.getLoginUser();
|
||||
// update the kerberos credentials, if they are coming from a keytab
|
||||
ugi.reloginFromKeytab();
|
||||
|
||||
return getWebHdfs(token, conf).renewDelegationToken(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(final Token<?> token, final Configuration conf
|
||||
) throws IOException, InterruptedException {
|
||||
final UserGroupInformation ugi = UserGroupInformation.getLoginUser();
|
||||
// update the kerberos credentials, if they are coming from a keytab
|
||||
ugi.checkTGTAndReloginFromKeytab();
|
||||
|
||||
getWebHdfs(token, conf).cancelDelegationToken(token);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user