package org.cagrid.core.soapclient; import org.cagrid.core.common.security.X509Credential; import java.net.Socket; import java.security.Principal; import java.security.PrivateKey; import java.security.cert.X509Certificate; import javax.net.ssl.SSLEngine; import javax.net.ssl.X509ExtendedKeyManager; public class SingleEntityKeyManager extends X509ExtendedKeyManager { private final String alias; private final X509Certificate[] certificateChain; private final PrivateKey privateKey; public SingleEntityKeyManager(String alias, X509Credential credential) { this(alias, credential.getCertificates(), credential.getKey()); } public SingleEntityKeyManager(String alias, X509Certificate[] certificateChain, PrivateKey privateKey) { this.alias = alias; this.certificateChain = certificateChain; this.privateKey = privateKey; } @Override public String chooseEngineClientAlias(String[] keyType, Principal[] issuers, SSLEngine engine) { return alias; } @Override public String chooseEngineServerAlias(String keyType, Principal[] issuers, SSLEngine engine) { return null; } @Override public String chooseClientAlias(String[] arg0, Principal[] arg1, Socket arg2) { return alias; } @Override public String chooseServerAlias(String arg0, Principal[] arg1, Socket arg2) { return null; } @Override public X509Certificate[] getCertificateChain(String arg0) { return certificateChain; } @Override public String[] getClientAliases(String arg0, Principal[] arg1) { return new String[] { alias }; } @Override public PrivateKey getPrivateKey(String arg0) { return privateKey; } @Override public String[] getServerAliases(String arg0, Principal[] arg1) { return new String[] {}; } }