Skip to content

Commit 6ea7a62

Browse files
authored
fix: choose correct key by alias (#1939)
* choose correct key by alias Signed-off-by: achmelo <a.chmelo@gmail.com> * add alias Signed-off-by: achmelo <a.chmelo@gmail.com> * keep default private key strategy in case of missing alias in configuration Signed-off-by: achmelo <a.chmelo@gmail.com>
1 parent 577fc74 commit 6ea7a62

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

common-service-core/src/main/java/org/zowe/apiml/security/HttpsFactory.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
2424
import org.apache.http.impl.client.CloseableHttpClient;
2525
import org.apache.http.impl.client.HttpClientBuilder;
26+
import org.apache.http.ssl.PrivateKeyStrategy;
2627
import org.apache.http.ssl.SSLContextBuilder;
2728
import org.apache.http.ssl.SSLContexts;
2829
import org.zowe.apiml.message.log.ApimlLogger;
@@ -184,14 +185,21 @@ private void loadKeystoreMaterial(SSLContextBuilder sslContextBuilder) throws Un
184185
}
185186
log.info("Loading key store file: " + config.getKeyStore());
186187
File keyStoreFile = new File(config.getKeyStore());
187-
sslContextBuilder.loadKeyMaterial(keyStoreFile, config.getKeyStorePassword(), config.getKeyPassword());
188+
sslContextBuilder.loadKeyMaterial(
189+
keyStoreFile, config.getKeyStorePassword(), config.getKeyPassword(),
190+
getPrivateKeyStrategy()
191+
);
192+
}
193+
194+
private PrivateKeyStrategy getPrivateKeyStrategy() {
195+
return config.getKeyAlias() != null ? (aliases, socket) -> config.getKeyAlias() : null;
188196
}
189197

190198
private void loadKeyringMaterial(SSLContextBuilder sslContextBuilder) throws UnrecoverableKeyException,
191199
NoSuchAlgorithmException, KeyStoreException, CertificateException, IOException {
192200
log.info("Loading trust key ring: " + config.getKeyStore());
193201
sslContextBuilder.loadKeyMaterial(keyRingUrl(config.getKeyStore()), config.getKeyStorePassword(),
194-
config.getKeyPassword(), null);
202+
config.getKeyPassword(), getPrivateKeyStrategy());
195203
}
196204

197205
private synchronized SSLContext createSecureSslContext() {

common-service-core/src/test/java/org/zowe/apiml/security/SecurityTestUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ public class SecurityTestUtils {
2222

2323
public static HttpsConfig.HttpsConfigBuilder correctHttpsSettings() {
2424
return SecurityTestUtils.correctHttpsKeyStoreSettings()
25-
.trustStore(pathFromRepository("keystore/localhost/localhost.truststore.p12"))
26-
.trustStorePassword(STORE_PASSWORD);
25+
.trustStore(pathFromRepository("keystore/localhost/localhost.truststore.p12"))
26+
.trustStorePassword(STORE_PASSWORD);
2727
}
2828

2929
public static HttpsConfig.HttpsConfigBuilder correctHttpsKeyStoreSettings() {
3030
return HttpsConfig.builder().protocol("TLSv1.2")
31-
.keyStore(SecurityTestUtils.pathFromRepository("keystore/localhost/localhost.keystore.p12"))
32-
.keyStorePassword(STORE_PASSWORD).keyPassword(STORE_PASSWORD);
31+
.keyStore(SecurityTestUtils.pathFromRepository("keystore/localhost/localhost.keystore.p12"))
32+
.keyStorePassword(STORE_PASSWORD).keyPassword(STORE_PASSWORD);
3333
}
3434

3535
public static String pathFromRepository(String path) {

0 commit comments

Comments
 (0)