diff --git a/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/server/JWTRedirectAuthenticationHandler.java b/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/server/JWTRedirectAuthenticationHandler.java index 884398cb799..61f5b9e8943 100644 --- a/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/server/JWTRedirectAuthenticationHandler.java +++ b/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/server/JWTRedirectAuthenticationHandler.java @@ -28,7 +28,6 @@ import java.text.ParseException; import java.security.interfaces.RSAPublicKey; -import com.google.common.annotations.VisibleForTesting; import org.apache.hadoop.security.authentication.client.AuthenticationException; import org.apache.hadoop.security.authentication.util.CertificateUtil; import org.slf4j.Logger; @@ -217,8 +216,7 @@ public class JWTRedirectAuthenticationHandler extends * @param request for getting the original request URL * @return url to use as login url for redirect */ - @VisibleForTesting - String constructLoginURL(HttpServletRequest request) { + protected String constructLoginURL(HttpServletRequest request) { String delimiter = "?"; if (authenticationProviderUrl.contains("?")) { delimiter = "&"; diff --git a/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/server/TestJWTRedirectAuthenticationHandler.java b/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/server/TestJWTRedirectAuthentictionHandler.java similarity index 95% rename from hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/server/TestJWTRedirectAuthenticationHandler.java rename to hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/server/TestJWTRedirectAuthentictionHandler.java index 5a2db9ba6fd..97a8a9d2c5d 100644 --- a/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/server/TestJWTRedirectAuthenticationHandler.java +++ b/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/server/TestJWTRedirectAuthentictionHandler.java @@ -47,7 +47,7 @@ import com.nimbusds.jwt.JWTClaimsSet; import com.nimbusds.jwt.SignedJWT; import com.nimbusds.jose.crypto.RSASSASigner; -public class TestJWTRedirectAuthenticationHandler extends +public class TestJWTRedirectAuthentictionHandler extends KerberosSecurityTestcase { private static final String SERVICE_URL = "https://localhost:8888/resource"; private static final String REDIRECT_LOCATION = @@ -392,7 +392,7 @@ public class TestJWTRedirectAuthenticationHandler extends new StringBuffer(SERVICE_URL)); Mockito.when(request.getQueryString()).thenReturn("name=value"); - String loginURL = handler.constructLoginURL(request); + String loginURL = ((TestJWTRedirectAuthenticationHandler)handler).testConstructLoginURL(request); Assert.assertNotNull("loginURL should not be null.", loginURL); Assert.assertEquals("https://localhost:8443/authserver?originalUrl=" + SERVICE_URL + "?name=value", loginURL); } @@ -409,7 +409,7 @@ public class TestJWTRedirectAuthenticationHandler extends new StringBuffer(SERVICE_URL)); Mockito.when(request.getQueryString()).thenReturn(null); - String loginURL = handler.constructLoginURL(request); + String loginURL = ((TestJWTRedirectAuthenticationHandler)handler).testConstructLoginURL(request); Assert.assertNotNull("LoginURL should not be null.", loginURL); Assert.assertEquals("https://localhost:8443/authserver?originalUrl=" + SERVICE_URL, loginURL); } @@ -425,7 +425,7 @@ public class TestJWTRedirectAuthenticationHandler extends publicKey = (RSAPublicKey) kp.getPublic(); privateKey = (RSAPrivateKey) kp.getPrivate(); - handler = new JWTRedirectAuthenticationHandler(); + handler = new TestJWTRedirectAuthenticationHandler(); } protected void setupKerberosRequirements() throws Exception { @@ -453,16 +453,15 @@ public class TestJWTRedirectAuthenticationHandler extends protected SignedJWT getJWT(String sub, Date expires, RSAPrivateKey privateKey) throws Exception { - JWTClaimsSet claimsSet = new JWTClaimsSet.Builder() - .subject(sub) - .issueTime(new Date(new Date().getTime())) - .issuer("https://c2id.com") - .claim("scope", "openid") - .audience("bar") - .expirationTime(expires) - .build(); + JWTClaimsSet claimsSet = new JWTClaimsSet(); + claimsSet.setSubject(sub); + claimsSet.setIssueTime(new Date(new Date().getTime())); + claimsSet.setIssuer("https://c2id.com"); + claimsSet.setCustomClaim("scope", "openid"); + claimsSet.setExpirationTime(expires); List aud = new ArrayList(); aud.add("bar"); + claimsSet.setAudience("bar"); JWSHeader header = new JWSHeader.Builder(JWSAlgorithm.RS256).build(); @@ -473,4 +472,10 @@ public class TestJWTRedirectAuthenticationHandler extends return signedJWT; } + + class TestJWTRedirectAuthenticationHandler extends JWTRedirectAuthenticationHandler { + public String testConstructLoginURL(HttpServletRequest req) { + return constructLoginURL(req); + } + }; } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/task/reduce/TestFetcher.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/task/reduce/TestFetcher.java index 934afd747e7..7d1b58f00af 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/task/reduce/TestFetcher.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/task/reduce/TestFetcher.java @@ -25,7 +25,9 @@ import java.net.HttpURLConnection; import org.apache.hadoop.fs.ChecksumException; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.mapred.MapOutputFile; import org.apache.hadoop.mapreduce.MRJobConfig; +import org.apache.hadoop.mapreduce.TaskID; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -64,6 +66,8 @@ import org.junit.Test; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +import com.nimbusds.jose.util.StringUtils; + /** * Test that the Fetcher does what we expect it to. */ diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml index ba54c28925b..3b506f9b949 100644 --- a/hadoop-project/pom.xml +++ b/hadoop-project/pom.xml @@ -1139,7 +1139,7 @@ com.nimbusds nimbus-jose-jwt - 4.41.1 + 3.9 compile