diff --git a/core/spring-boot/src/main/java/org/springframework/boot/ssl/AliasKeyManagerFactory.java b/core/spring-boot/src/main/java/org/springframework/boot/ssl/AliasKeyManagerFactory.java index ee047e07ace5..a8fa16ea2f18 100644 --- a/core/spring-boot/src/main/java/org/springframework/boot/ssl/AliasKeyManagerFactory.java +++ b/core/spring-boot/src/main/java/org/springframework/boot/ssl/AliasKeyManagerFactory.java @@ -106,7 +106,7 @@ private AliasX509ExtendedKeyManager(X509ExtendedKeyManager keyManager, String al @Override public String chooseEngineClientAlias(String[] strings, Principal[] principals, SSLEngine sslEngine) { - return this.delegate.chooseEngineClientAlias(strings, principals, sslEngine); + return this.alias; } @Override @@ -116,7 +116,7 @@ public String chooseEngineServerAlias(String s, Principal[] principals, SSLEngin @Override public String chooseClientAlias(String[] keyType, Principal[] issuers, Socket socket) { - return this.delegate.chooseClientAlias(keyType, issuers, socket); + return this.alias; } @Override diff --git a/core/spring-boot/src/test/java/org/springframework/boot/ssl/AliasKeyManagerFactoryTests.java b/core/spring-boot/src/test/java/org/springframework/boot/ssl/AliasKeyManagerFactoryTests.java index 24f00dac9755..f50ad31a5157 100644 --- a/core/spring-boot/src/test/java/org/springframework/boot/ssl/AliasKeyManagerFactoryTests.java +++ b/core/spring-boot/src/test/java/org/springframework/boot/ssl/AliasKeyManagerFactoryTests.java @@ -34,21 +34,40 @@ * @author Phillip Webb */ class AliasKeyManagerFactoryTests { + private static final String ALIAS = "test-alias"; @Test void chooseEngineServerAliasReturnsAlias() throws Exception { + X509ExtendedKeyManager keyManager = createKeyManager(); + String chosenAlias = keyManager.chooseEngineServerAlias(null, null, null); + assertThat(chosenAlias).isEqualTo(ALIAS); + } + + @Test + void chooseEngineClientAliasReturnsAlias() throws Exception { + X509ExtendedKeyManager keyManager = createKeyManager(); + String chosenAlias = keyManager.chooseEngineClientAlias(null, null, null); + assertThat(chosenAlias).isEqualTo(ALIAS); + } + + @Test + void chooseClientAliasReturnsAlias() throws Exception { + X509ExtendedKeyManager keyManager = createKeyManager(); + String chosenAlias = keyManager.chooseClientAlias(null, null, null); + assertThat(chosenAlias).isEqualTo(ALIAS); + } + + private X509ExtendedKeyManager createKeyManager() throws Exception { KeyManagerFactory delegate = mock(KeyManagerFactory.class); given(delegate.getKeyManagers()).willReturn(new KeyManager[] { mock(X509ExtendedKeyManager.class) }); - AliasKeyManagerFactory factory = new AliasKeyManagerFactory(delegate, "test-alias", - KeyManagerFactory.getDefaultAlgorithm()); + + AliasKeyManagerFactory factory = + new AliasKeyManagerFactory(delegate, ALIAS, KeyManagerFactory.getDefaultAlgorithm()); factory.init(null, null); - KeyManager[] keyManagers = factory.getKeyManagers(); - X509ExtendedKeyManager x509KeyManager = (X509ExtendedKeyManager) Arrays.stream(keyManagers) - .filter(X509ExtendedKeyManager.class::isInstance) - .findAny() - .get(); - String chosenAlias = x509KeyManager.chooseEngineServerAlias(null, null, null); - assertThat(chosenAlias).isEqualTo("test-alias"); - } + return (X509ExtendedKeyManager) Arrays.stream(factory.getKeyManagers()) + .filter(X509ExtendedKeyManager.class::isInstance) + .findFirst() + .orElseThrow(); + } }