Revert "HADOOP-13565. KerberosAuthenticationHandler#authenticate should not rebuild SPN based on client request. Contributed by Xiaoyu Yao."

This reverts commit 5abc788825.
This commit is contained in:
Xiaoyu Yao 2016-11-04 16:06:59 -07:00
parent 4cb4e4c0a1
commit 5073289c4a
1 changed files with 6 additions and 1 deletions

View File

@ -343,6 +343,8 @@ public class KerberosAuthenticationHandler implements AuthenticationHandler {
authorization = authorization.substring(KerberosAuthenticator.NEGOTIATE.length()).trim(); authorization = authorization.substring(KerberosAuthenticator.NEGOTIATE.length()).trim();
final Base64 base64 = new Base64(0); final Base64 base64 = new Base64(0);
final byte[] clientToken = base64.decode(authorization); final byte[] clientToken = base64.decode(authorization);
final String serverName = InetAddress.getByName(request.getServerName())
.getCanonicalHostName();
try { try {
token = Subject.doAs(serverSubject, new PrivilegedExceptionAction<AuthenticationToken>() { token = Subject.doAs(serverSubject, new PrivilegedExceptionAction<AuthenticationToken>() {
@ -352,7 +354,10 @@ public class KerberosAuthenticationHandler implements AuthenticationHandler {
GSSContext gssContext = null; GSSContext gssContext = null;
GSSCredential gssCreds = null; GSSCredential gssCreds = null;
try { try {
gssCreds = gssManager.createCredential(null, gssCreds = gssManager.createCredential(
gssManager.createName(
KerberosUtil.getServicePrincipal("HTTP", serverName),
KerberosUtil.getOidInstance("NT_GSS_KRB5_PRINCIPAL")),
GSSCredential.INDEFINITE_LIFETIME, GSSCredential.INDEFINITE_LIFETIME,
new Oid[]{ new Oid[]{
KerberosUtil.getOidInstance("GSS_SPNEGO_MECH_OID"), KerberosUtil.getOidInstance("GSS_SPNEGO_MECH_OID"),