diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-04-26 17:51:54 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-04-26 17:51:54 +0200 |
commit | 938881c148eadd9fca215fca675dd6abaedfb66e (patch) | |
tree | f86cbfe81680abc5529712cf7e7c277aff32c1c3 /vespa-athenz/src/test/java/com/yahoo | |
parent | 014a59dc7444d874c0fa7765783ee84707f6ae40 (diff) |
Only create SSLContext once for each update
Diffstat (limited to 'vespa-athenz/src/test/java/com/yahoo')
-rw-r--r-- | vespa-athenz/src/test/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImplTest.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/vespa-athenz/src/test/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImplTest.java b/vespa-athenz/src/test/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImplTest.java index 9a2d552f99b..a0ae6ca61db 100644 --- a/vespa-athenz/src/test/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImplTest.java +++ b/vespa-athenz/src/test/java/com/yahoo/vespa/athenz/identityprovider/client/AthenzIdentityProviderImplTest.java @@ -5,10 +5,17 @@ import com.yahoo.container.core.identity.IdentityConfig; import com.yahoo.container.jdisc.athenz.AthenzIdentityProviderException; import com.yahoo.jdisc.Metric; import com.yahoo.test.ManualClock; +import com.yahoo.vespa.athenz.tls.KeyStoreBuilder; +import com.yahoo.vespa.athenz.tls.KeyStoreUtils; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +import java.io.File; +import java.io.IOException; +import java.security.KeyStore; import java.security.cert.X509Certificate; import java.time.Duration; import java.time.Instant; @@ -16,6 +23,7 @@ import java.util.Date; import java.util.concurrent.ScheduledExecutorService; import java.util.function.Supplier; +import static com.yahoo.vespa.athenz.tls.KeyStoreType.JKS; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; @@ -29,6 +37,9 @@ import static org.mockito.Mockito.when; */ public class AthenzIdentityProviderImplTest { + @Rule + public TemporaryFolder tempDir = new TemporaryFolder(); + public static final Duration certificateValidity = Duration.ofDays(30); private static final IdentityConfig IDENTITY_CONFIG = @@ -45,7 +56,7 @@ public class AthenzIdentityProviderImplTest { } @Test - public void metrics_updated_on_refresh() { + public void metrics_updated_on_refresh() throws IOException { IdentityDocumentService identityDocumentService = mock(IdentityDocumentService.class); AthenzService athenzService = mock(AthenzService.class); ManualClock clock = new ManualClock(Instant.EPOCH); @@ -66,7 +77,7 @@ public class AthenzIdentityProviderImplTest { .thenReturn(new InstanceIdentity(getCertificate(getExpirationSupplier(clock)), "TOKEN")); AthenzCredentialsService credentialService = - new AthenzCredentialsService(IDENTITY_CONFIG, identityDocumentService, athenzService, clock); + new AthenzCredentialsService(IDENTITY_CONFIG, identityDocumentService, athenzService, createDummyTrustStore()); AthenzIdentityProviderImpl identityProvider = new AthenzIdentityProviderImpl(IDENTITY_CONFIG, metric, credentialService, mock(ScheduledExecutorService.class), clock); @@ -104,6 +115,13 @@ public class AthenzIdentityProviderImplTest { return x509Certificate; } + private File createDummyTrustStore() throws IOException { + File file = tempDir.newFile(); + KeyStore keyStore = KeyStoreBuilder.withType(JKS).build(); + KeyStoreUtils.writeKeyStoreToFile(keyStore, file); + return file; + } + private static String getIdentityDocument() { return "{\n" + " \"identity-document\": \"eyJwcm92aWRlci11bmlxdWUtaWQiOnsidGVuYW50IjoidGVuYW50IiwiYXBwbGljYXRpb24iOiJhcHBsaWNhdGlvbiIsImVudmlyb25tZW50IjoiZGV2IiwicmVnaW9uIjoidXMtbm9ydGgtMSIsImluc3RhbmNlIjoiZGVmYXVsdCIsImNsdXN0ZXItaWQiOiJkZWZhdWx0IiwiY2x1c3Rlci1pbmRleCI6MH0sImNvbmZpZ3NlcnZlci1ob3N0bmFtZSI6ImxvY2FsaG9zdCIsImluc3RhbmNlLWhvc3RuYW1lIjoieC55LmNvbSIsImNyZWF0ZWQtYXQiOjE1MDg3NDgyODUuNzQyMDAwMDAwfQ==\",\n" + |