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-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
|
Release 0.23.6 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -156,7 +156,6 @@ public static boolean isEnabled(final Configuration conf, final Log log) {
|
|||||||
private URI uri;
|
private URI uri;
|
||||||
private boolean hasInitedToken;
|
private boolean hasInitedToken;
|
||||||
private Token<?> delegationToken;
|
private Token<?> delegationToken;
|
||||||
private final AuthenticatedURL.Token authToken = new AuthenticatedURL.Token();
|
|
||||||
private RetryPolicy retryPolicy = null;
|
private RetryPolicy retryPolicy = null;
|
||||||
private Path workingDir;
|
private Path workingDir;
|
||||||
|
|
||||||
@ -481,6 +480,8 @@ private HttpURLConnection openHttpUrlConnection(final URL url)
|
|||||||
try {
|
try {
|
||||||
if (op.getRequireAuth()) {
|
if (op.getRequireAuth()) {
|
||||||
LOG.debug("open AuthenticatedURL connection");
|
LOG.debug("open AuthenticatedURL connection");
|
||||||
|
UserGroupInformation.getCurrentUser().checkTGTAndReloginFromKeytab();
|
||||||
|
final AuthenticatedURL.Token authToken = new AuthenticatedURL.Token();
|
||||||
conn = new AuthenticatedURL(AUTH).openConnection(url, authToken);
|
conn = new AuthenticatedURL(AUTH).openConnection(url, authToken);
|
||||||
} else {
|
} else {
|
||||||
LOG.debug("open URL connection");
|
LOG.debug("open URL connection");
|
||||||
@ -1006,20 +1007,12 @@ private static WebHdfsFileSystem getWebHdfs(
|
|||||||
@Override
|
@Override
|
||||||
public long renew(final Token<?> token, final Configuration conf
|
public long renew(final Token<?> token, final Configuration conf
|
||||||
) throws IOException, InterruptedException {
|
) 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);
|
return getWebHdfs(token, conf).renewDelegationToken(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(final Token<?> token, final Configuration conf
|
public void cancel(final Token<?> token, final Configuration conf
|
||||||
) throws IOException, InterruptedException {
|
) 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);
|
getWebHdfs(token, conf).cancelDelegationToken(token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user