diff --git a/pom.xml b/pom.xml index 4e1f37c..19ad0a7 100644 --- a/pom.xml +++ b/pom.xml @@ -40,19 +40,12 @@ -SNAPSHOT - 2.401.1 + 2.401.3 bom-2.401.x - 2244.vd60654536b_96 - - - 1.53.v1c90fd9191a_b_ - 439.va_3cb_0a_6a_fb_29 - 1.0.9 - 6.8.1-224.vd388fca_4db_3b_ + 2555.v3190a_8a_c60c6 4.3.0 - 0.8.10 Max Low @@ -62,8 +55,7 @@ org.jenkins-ci.plugins kubernetes-client-api - ${kubernetes-client-api.version} - + org.jenkins-ci.plugins jackson2-api @@ -82,8 +74,7 @@ org.jenkins-ci.plugins authentication-tokens - ${authentication-tokens.version} - + @@ -95,13 +86,11 @@ org.jenkins-ci.plugins google-oauth-plugin - ${google-oauth-plugin.version} true org.jenkins-ci.plugins docker-commons - ${docker-commons.version} true @@ -146,7 +135,6 @@ org.jacoco jacoco-maven-plugin - ${maven-jacoco.version} prepare-agent diff --git a/src/main/java/org/jenkinsci/plugins/kubernetes/auth/KubernetesAuthException.java b/src/main/java/org/jenkinsci/plugins/kubernetes/auth/KubernetesAuthException.java index b8db5bc..355b4d4 100644 --- a/src/main/java/org/jenkinsci/plugins/kubernetes/auth/KubernetesAuthException.java +++ b/src/main/java/org/jenkinsci/plugins/kubernetes/auth/KubernetesAuthException.java @@ -1,7 +1,11 @@ package org.jenkinsci.plugins.kubernetes.auth; public class KubernetesAuthException extends Exception { - public KubernetesAuthException() { super(); } + /** + * + */ + private static final long serialVersionUID = 1L; + public KubernetesAuthException() { super(); } public KubernetesAuthException(String message) { super(message); } public KubernetesAuthException(String message, Throwable cause) { super(message, cause); } public KubernetesAuthException(Throwable cause) { super(cause); } diff --git a/src/main/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfig.java b/src/main/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfig.java index d100392..b1fa4e1 100644 --- a/src/main/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfig.java +++ b/src/main/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfig.java @@ -1,12 +1,11 @@ package org.jenkinsci.plugins.kubernetes.auth.impl; -import io.fabric8.kubernetes.client.ConfigBuilder; -import io.fabric8.kubernetes.client.internal.KubeConfigUtils; import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuth; import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig; import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthException; -import java.io.IOException; +import io.fabric8.kubernetes.client.ConfigBuilder; +import io.fabric8.kubernetes.client.internal.KubeConfigUtils; /** * Kubernetes authentication using a raw kubeconfig string. diff --git a/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/HttpClientWithTLSOptionsFactory.java b/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/HttpClientWithTLSOptionsFactory.java index 2eef758..0241d48 100644 --- a/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/HttpClientWithTLSOptionsFactory.java +++ b/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/HttpClientWithTLSOptionsFactory.java @@ -95,7 +95,12 @@ public static HttpClientBuilder getBuilder(URI uri, String caCertData, boolean s } public static class TLSConfigurationError extends Exception { - public TLSConfigurationError(Exception e) { + /** + * + */ + private static final long serialVersionUID = 1L; + + public TLSConfigurationError(Exception e) { super(e); } } diff --git a/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialImpl.java b/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialImpl.java index 9b72f0a..8066f88 100644 --- a/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialImpl.java +++ b/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialImpl.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.logging.Logger; +//import java.util.logging.Logger; /** * @author Nicolas De Loof @@ -38,7 +38,7 @@ public class OpenShiftBearerTokenCredentialImpl extends UsernamePasswordCredenti // Used to artificially reduce the lifespan of a token protected static final long EARLY_EXPIRE_DELAY_SEC = 300; private static final long serialVersionUID = 6031616605797622926L; - private static final Logger logger = Logger.getLogger(OpenShiftBearerTokenCredentialImpl.class.getName()); + //private static final Logger logger = Logger.getLogger(OpenShiftBearerTokenCredentialImpl.class.getName()); private transient ConcurrentMap tokenCache = new ConcurrentHashMap<>(); @DataBoundConstructor @@ -172,7 +172,12 @@ public static class Token { } public static class TokenResponseError extends Exception { - public TokenResponseError(String message) { + /** + * + */ + private static final long serialVersionUID = 1L; + + public TokenResponseError(String message) { super(message); } } diff --git a/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/Utils.java b/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/Utils.java index bb392d0..9998afa 100644 --- a/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/Utils.java +++ b/src/main/java/org/jenkinsci/plugins/kubernetes/credentials/Utils.java @@ -1,12 +1,11 @@ package org.jenkinsci.plugins.kubernetes.credentials; -import org.apache.commons.codec.binary.Base64; - import java.nio.charset.StandardCharsets; import java.security.Key; import java.security.cert.Certificate; import java.security.cert.CertificateEncodingException; -import java.security.cert.X509Certificate; + +import org.apache.commons.codec.binary.Base64; public abstract class Utils { diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/AbstractKubernetesAuthTest.java b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/AbstractKubernetesAuthTest.java index b331117..8d749d4 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/AbstractKubernetesAuthTest.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/AbstractKubernetesAuthTest.java @@ -1,25 +1,23 @@ package org.jenkinsci.plugins.kubernetes.auth.impl; -import io.fabric8.kubernetes.api.model.AuthInfoBuilder; -import io.fabric8.kubernetes.api.model.Cluster; -import io.fabric8.kubernetes.client.ConfigBuilder; -import io.fabric8.kubernetes.client.utils.Serialization; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig; import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthException; import org.jenkinsci.plugins.kubernetes.credentials.Utils; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import io.fabric8.kubernetes.api.model.AuthInfoBuilder; +import io.fabric8.kubernetes.api.model.Cluster; +import io.fabric8.kubernetes.client.ConfigBuilder; public class AbstractKubernetesAuthTest { @Test public void createConfig() throws Exception { AbstractKubernetesAuth b = new NoopKubernetesAuth(); - io.fabric8.kubernetes.api.model.Config c = Serialization.yamlMapper().readValue( - b.buildKubeConfig(new KubernetesAuthConfig("serverUrl", "caCertificate", false)), io.fabric8.kubernetes.api.model.Config.class - ); + io.fabric8.kubernetes.api.model.Config c = b.buildConfigBuilder(new KubernetesAuthConfig("serverUrl", "caCertificate", false), "k8s", "k8s", "cluster-admin").build(); assertEquals(1, c.getClusters().size()); Cluster cluster = c.getClusters().get(0).getCluster(); assertEquals("serverUrl", cluster.getServer()); @@ -31,9 +29,7 @@ public void createConfig() throws Exception { @Test public void skipTlsVerify() throws Exception { AbstractKubernetesAuth b = new NoopKubernetesAuth(); - io.fabric8.kubernetes.api.model.Config c = Serialization.yamlMapper().readValue( - b.buildKubeConfig(new KubernetesAuthConfig("serverUrl", "caCertificate", true)), io.fabric8.kubernetes.api.model.Config.class - ); + io.fabric8.kubernetes.api.model.Config c = b.buildConfigBuilder(new KubernetesAuthConfig("serverUrl", "caCertificate", true), "k8s", "k8s", "cluster-admin").build(); assertEquals(1, c.getClusters().size()); Cluster cluster = c.getClusters().get(0).getCluster(); assertEquals("serverUrl", cluster.getServer()); diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthCertificateTest.java b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthCertificateTest.java index d11d0c5..b02e9f3 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthCertificateTest.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthCertificateTest.java @@ -1,15 +1,14 @@ package org.jenkinsci.plugins.kubernetes.auth.impl; -import hudson.util.Secret; -import io.fabric8.kubernetes.client.utils.Serialization; +import static org.junit.Assert.assertEquals; + import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig; -import org.jenkinsci.plugins.kubernetes.auth.impl.KubernetesAuthCertificate; import org.jenkinsci.plugins.kubernetes.credentials.Utils; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; -import static org.junit.Assert.assertEquals; +import hudson.util.Secret; public class KubernetesAuthCertificateTest { @Rule @@ -23,10 +22,7 @@ public void createConfig() throws Exception { certData, Secret.fromString(keyData) ); - io.fabric8.kubernetes.api.model.Config c = Serialization.yamlMapper().readValue( - b.buildKubeConfig(new KubernetesAuthConfig("serverUrl", "caCertificate", false)), io.fabric8.kubernetes.api.model.Config.class - ); - + io.fabric8.kubernetes.api.model.Config c = b.buildConfigBuilder(new KubernetesAuthConfig("serverUrl", "caCertificate", false), "k8s", "k8s", "cluster-admin").build(); // verifying class doesn't modify cert and key data, so not using here assertEquals(Utils.encodeBase64(certData), c.getUsers().get(0).getUser().getClientCertificateData()); assertEquals(Utils.encodeBase64(keyData), c.getUsers().get(0).getUser().getClientKeyData()); diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKeystoreTest.java b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKeystoreTest.java index aa94250..72994d8 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKeystoreTest.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKeystoreTest.java @@ -1,14 +1,6 @@ package org.jenkinsci.plugins.kubernetes.auth.impl; -import hudson.util.Secret; -import io.fabric8.kubernetes.api.model.Config; -import io.fabric8.kubernetes.client.utils.Serialization; -import org.apache.commons.compress.utils.IOUtils; -import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig; -import org.jenkinsci.plugins.kubernetes.credentials.Utils; -import org.junit.Rule; -import org.junit.Test; -import org.jvnet.hudson.test.JenkinsRule; +import static org.junit.Assert.assertEquals; import java.io.IOException; import java.io.InputStream; @@ -17,7 +9,14 @@ import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; -import static org.junit.Assert.assertEquals; +import org.apache.commons.compress.utils.IOUtils; +import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig; +import org.jenkinsci.plugins.kubernetes.credentials.Utils; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.JenkinsRule; + +import hudson.util.Secret; public class KubernetesAuthKeystoreTest { @Rule @@ -30,9 +29,7 @@ public void createConfig() throws Exception { try (InputStream resourceAsStream = getClass().getResourceAsStream("kubernetes.pkcs12")) { KeyStore keyStore = loadKeyStore(resourceAsStream, PASSPHRASE.toCharArray()); KubernetesAuthKeystore auth = new KubernetesAuthKeystore(keyStore, Secret.fromString(PASSPHRASE)); - Config c = Serialization.yamlMapper().readValue( - auth.buildKubeConfig(new KubernetesAuthConfig("serverUrl", "caCertificate", false)), Config.class - ); + io.fabric8.kubernetes.api.model.Config c = auth.buildConfigBuilder(new KubernetesAuthConfig("serverUrl", "caCertificate", false), "k8s", "k8s", "cluster-admin").build(); // verifying class doesn't modify cert and key data, so not using here assertEquals(Utils.encodeBase64(readFile("test.crt")), c.getUsers().get(0).getUser().getClientCertificateData()); diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfigTest.java b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfigTest.java index a2dd38c..09258b3 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfigTest.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthKubeconfigTest.java @@ -1,11 +1,10 @@ package org.jenkinsci.plugins.kubernetes.auth.impl; +import static org.junit.Assert.assertEquals; + import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig; -import org.jenkinsci.plugins.kubernetes.auth.impl.KubernetesAuthKubeconfig; import org.junit.Test; -import static org.junit.Assert.assertEquals; - public class KubernetesAuthKubeconfigTest { @Test public void createConfig() throws Exception { diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthUsernamePasswordTest.java b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthUsernamePasswordTest.java index 67a2fca..4bd2af3 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthUsernamePasswordTest.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/auth/impl/KubernetesAuthUsernamePasswordTest.java @@ -1,14 +1,13 @@ package org.jenkinsci.plugins.kubernetes.auth.impl; -import hudson.util.Secret; -import io.fabric8.kubernetes.client.utils.Serialization; +import static org.junit.Assert.assertEquals; + import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig; -import org.jenkinsci.plugins.kubernetes.auth.impl.KubernetesAuthUsernamePassword; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; -import static org.junit.Assert.assertEquals; +import hudson.util.Secret; public class KubernetesAuthUsernamePasswordTest { @Rule @@ -17,9 +16,7 @@ public class KubernetesAuthUsernamePasswordTest { @Test public void createConfig() throws Exception { KubernetesAuthUsernamePassword b = new KubernetesAuthUsernamePassword("user", Secret.fromString("pass")); - io.fabric8.kubernetes.api.model.Config c = Serialization.yamlMapper().readValue( - b.buildKubeConfig(new KubernetesAuthConfig("serverUrl", "caCertificate", false)), io.fabric8.kubernetes.api.model.Config.class - ); + io.fabric8.kubernetes.api.model.Config c = b.buildConfigBuilder(new KubernetesAuthConfig("serverUrl", "caCertificate", false), "k8s", "k8s", "cluster-admin").build(); assertEquals("cluster-admin", c.getUsers().get(0).getName()); assertEquals("user", c.getUsers().get(0).getUser().getUsername()); assertEquals("pass", c.getUsers().get(0).getUser().getPassword()); diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/JCasCConfigurationTest.java b/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/JCasCConfigurationTest.java index 8f239d0..723811f 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/JCasCConfigurationTest.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/JCasCConfigurationTest.java @@ -1,17 +1,18 @@ package org.jenkinsci.plugins.kubernetes.credentials; -import com.cloudbees.plugins.credentials.CredentialsProvider; -import com.cloudbees.plugins.credentials.CredentialsScope; -import hudson.init.InitMilestone; -import io.jenkins.plugins.casc.misc.RoundTripAbstractTest; -import jenkins.model.Jenkins; -import org.jvnet.hudson.test.RestartableJenkinsRule; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; import java.util.Collections; import java.util.List; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; +import org.jvnet.hudson.test.RestartableJenkinsRule; + +import com.cloudbees.plugins.credentials.CredentialsProvider; +import com.cloudbees.plugins.credentials.CredentialsScope; + +import io.jenkins.plugins.casc.misc.RoundTripAbstractTest; +import jenkins.model.Jenkins; public class JCasCConfigurationTest extends RoundTripAbstractTest { @@ -29,7 +30,7 @@ protected void assertConfiguredAsExpected(RestartableJenkinsRule restartableJenk // assertThat(fileSystemServiceAccountCredential.getScope(), is(CredentialsScope.GLOBAL)); List creds1 = - CredentialsProvider.lookupCredentials(OpenShiftBearerTokenCredentialImpl.class, + CredentialsProvider.lookupCredentialsInItemGroup(OpenShiftBearerTokenCredentialImpl.class, Jenkins.getInstanceOrNull(), null, Collections.emptyList()); assertThat(creds1.size(), is(1)); OpenShiftBearerTokenCredentialImpl openShiftBearerTokenCredential = creds1.get(0); diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/MockHttpServlet.java b/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/MockHttpServlet.java index 681864d..5641f67 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/MockHttpServlet.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/MockHttpServlet.java @@ -14,7 +14,12 @@ * @author Max Laverse */ public class MockHttpServlet extends HttpServlet { - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + /** + * + */ + private static final long serialVersionUID = 1L; + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { switch (request.getPathInfo()) { case "/bad-location/oauth/authorize": response.sendRedirect("bad"); diff --git a/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialTest.java b/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialTest.java index cdee860..faa255a 100644 --- a/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialTest.java +++ b/src/test/java/org/jenkinsci/plugins/kubernetes/credentials/OpenShiftBearerTokenCredentialTest.java @@ -1,7 +1,12 @@ package org.jenkinsci.plugins.kubernetes.credentials; -import com.cloudbees.plugins.credentials.CredentialsScope; -import hudson.util.Secret; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.net.InetSocketAddress; + import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; @@ -9,14 +14,11 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.jvnet.hudson.test.JenkinsRule; -import java.io.IOException; -import java.net.InetSocketAddress; +import com.cloudbees.plugins.credentials.CredentialsScope; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import hudson.util.Secret; /** * @author Max Laverse @@ -30,9 +32,6 @@ public class OpenShiftBearerTokenCredentialTest { @Rule public JenkinsRule r = new JenkinsRule(); - @Rule - public ExpectedException expectedEx = ExpectedException.none(); - private Server server; @Before @@ -71,30 +70,32 @@ public void testMultipleCachedTokens() throws IOException { @Test public void testBadStatusCode() throws IOException { - expectedEx.expect(IOException.class); - expectedEx.expectMessage("The response from the OAuth server was invalid: The OAuth service didn't respond with a redirection but with '400: Bad Request'"); - - OpenShiftBearerTokenCredentialImpl t = new OpenShiftBearerTokenCredentialImpl(CredentialsScope.GLOBAL, CREDENTIAL_ID, "sample", USERNAME, PASSWORD); - t.getToken(server.getURI() + "bad-response", null, true); + assertThrows("The response from the OAuth server was invalid: The OAuth service didn't respond with a redirection but with '400: Bad Request'", + IOException.class, () -> { + OpenShiftBearerTokenCredentialImpl t = new OpenShiftBearerTokenCredentialImpl(CredentialsScope.GLOBAL, CREDENTIAL_ID, "sample", USERNAME, PASSWORD); + t.getToken(server.getURI() + "bad-response", null, true); + }); } @Test public void testMissingLocation() throws IOException { - expectedEx.expect(IOException.class); - expectedEx.expectMessage("The response from the OAuth server was invalid: The OAuth service didn't respond with location header"); - - OpenShiftBearerTokenCredentialImpl t = new OpenShiftBearerTokenCredentialImpl(CredentialsScope.GLOBAL, CREDENTIAL_ID, "sample", USERNAME, PASSWORD); - t.getToken(server.getURI() + "missing-location", null, true); + assertThrows("The response from the OAuth server was invalid: The OAuth service didn't respond with location header", + IOException.class, () -> { + OpenShiftBearerTokenCredentialImpl t = new OpenShiftBearerTokenCredentialImpl(CredentialsScope.GLOBAL, CREDENTIAL_ID, "sample", USERNAME, PASSWORD); + t.getToken(server.getURI() + "missing-location", null, true); + }); } - @Test - public void testBadLocation() throws IOException { - expectedEx.expect(IOException.class); - expectedEx.expectMessage("The response from the OAuth server was invalid: The response contained no token"); + @Test + public void testBadLocation() throws IOException { - OpenShiftBearerTokenCredentialImpl t = new OpenShiftBearerTokenCredentialImpl(CredentialsScope.GLOBAL, CREDENTIAL_ID, "sample", USERNAME, PASSWORD); - t.getToken(server.getURI() + "bad-location", null, true); - } + assertThrows("The response from the OAuth server was invalid: The response contained no token", + IOException.class, () -> { + OpenShiftBearerTokenCredentialImpl t = new OpenShiftBearerTokenCredentialImpl( + CredentialsScope.GLOBAL, CREDENTIAL_ID, "sample", USERNAME, PASSWORD); + t.getToken(server.getURI() + "bad-location", null, true); + }); + } @Test public void testTokenExtractionEarlyExpire() throws OpenShiftBearerTokenCredentialImpl.TokenResponseError { @@ -110,21 +111,21 @@ public void testTokenExtractionEarlyExpire() throws OpenShiftBearerTokenCredenti assertTrue(expectedExpirySec-10 <= expirySec && expirySec <= expectedExpirySec); } - @Test - public void testInvalidExpireTokenExtraction() throws OpenShiftBearerTokenCredentialImpl.TokenResponseError { - expectedEx.expect(OpenShiftBearerTokenCredentialImpl.TokenResponseError.class); - expectedEx.expectMessage("Bad format for the token expiration value: bad"); - - OpenShiftBearerTokenCredentialImpl.extractTokenFromLocation("https://master.cluster.local:8443/oauth/token/display#access_token=VO4dAgNGLnX5MGYu_wXau8au2Rw0QAqnwq8AtrLkMfU&expires_in=bad&token_type=bearer"); - } - - @Test - public void testErroneousTokenExtraction() throws OpenShiftBearerTokenCredentialImpl.TokenResponseError { - expectedEx.expect(OpenShiftBearerTokenCredentialImpl.TokenResponseError.class); - expectedEx.expectMessage("An error was returned instead of a token: an error has_occured, bad username"); - - OpenShiftBearerTokenCredentialImpl.extractTokenFromLocation("https://master.cluster.local:8443/oauth/token/display#error=an+error+has_occured&error_description=bad+username&access_token=VO4dAgNGLnX5MGYu_wXau8au2Rw0QAqnwq8AtrLkMfU&expires_in=86400&token_type=bearer"); - } + @Test + public void testInvalidExpireTokenExtraction() throws OpenShiftBearerTokenCredentialImpl.TokenResponseError { + assertThrows("Bad format for the token expiration value: bad", + OpenShiftBearerTokenCredentialImpl.TokenResponseError.class, + () -> OpenShiftBearerTokenCredentialImpl.extractTokenFromLocation( + "https://master.cluster.local:8443/oauth/token/display#access_token=VO4dAgNGLnX5MGYu_wXau8au2Rw0QAqnwq8AtrLkMfU&expires_in=bad&token_type=bearer")); + } + + @Test + public void testErroneousTokenExtraction() throws OpenShiftBearerTokenCredentialImpl.TokenResponseError { + assertThrows("An error was returned instead of a token: an error has_occured, bad username", + OpenShiftBearerTokenCredentialImpl.TokenResponseError.class, + () -> OpenShiftBearerTokenCredentialImpl.extractTokenFromLocation( + "https://master.cluster.local:8443/oauth/token/display#error=an+error+has_occured&error_description=bad+username&access_token=VO4dAgNGLnX5MGYu_wXau8au2Rw0QAqnwq8AtrLkMfU&expires_in=86400&token_type=bearer")); + } @Test public void testAuthorizationHeader() {