import java.net.Socket;
+import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket;
import org.apache.tomcat.util.net.SSLSupport;
import org.apache.tomcat.util.net.ServerSocketFactory;
-import javax.net.ssl.SSLSession;
/**
* Factory interface to construct components based on the JSSE version
import java.net.Socket;
+import javax.net.ssl.SSLSession;
+
import org.apache.tomcat.util.net.SSLImplementation;
import org.apache.tomcat.util.net.SSLSupport;
import org.apache.tomcat.util.net.ServerSocketFactory;
-import javax.net.ssl.SSLSession;
/* JSSEImplementation:
import java.security.Principal;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
+
import javax.net.ssl.X509KeyManager;
/**
* @return The alias name for the desired key, or null if there are no
* matches
*/
+ @Override
public String chooseClientAlias(String[] keyType, Principal[] issuers,
Socket socket) {
return delegate.chooseClientAlias(keyType, issuers, socket);
*
* @return Alias name for the desired key
*/
+ @Override
public String chooseServerAlias(String keyType, Principal[] issuers,
Socket socket) {
return serverKeyAlias;
* and the root certificate authority last), or null if the alias can't be
* found
*/
+ @Override
public X509Certificate[] getCertificateChain(String alias) {
return delegate.getCertificateChain(alias);
}
* @return Array of the matching alias names, or null if there were no
* matches
*/
+ @Override
public String[] getClientAliases(String keyType, Principal[] issuers) {
return delegate.getClientAliases(keyType, issuers);
}
* @return Array of the matching alias names, or null if there were no
* matches
*/
+ @Override
public String[] getServerAliases(String keyType, Principal[] issuers) {
return delegate.getServerAliases(keyType, issuers);
}
*
* @return The requested key, or null if the alias can't be found
*/
+ @Override
public PrivateKey getPrivateKey(String alias) {
return delegate.getPrivateKey(alias);
}
this.session = session;
}
+ @Override
public String getCipherSuite() throws IOException {
// Look up the current SSLSession
if (session == null)
return session.getCipherSuite();
}
+ @Override
public Object[] getPeerCertificateChain()
throws IOException {
return getPeerCertificateChain(false);
}
- protected java.security.cert.X509Certificate [] getX509Certificates(SSLSession session)
- throws IOException {
+ protected java.security.cert.X509Certificate [] getX509Certificates(
+ SSLSession session) {
Certificate [] certs=null;
try {
certs = session.getPeerCertificates();
CertificateFactory.getInstance("X.509");
ByteArrayInputStream stream =
new ByteArrayInputStream(buffer);
- x509Certs[i] = (java.security.cert.X509Certificate) cf.generateCertificate(stream);
+ x509Certs[i] = (java.security.cert.X509Certificate)
+ cf.generateCertificate(stream);
} catch(Exception ex) {
log.info("Error translating cert " + certs[i], ex);
return null;
return x509Certs;
}
+ @Override
public Object[] getPeerCertificateChain(boolean force)
throws IOException {
// Look up the current SSLSession
/**
* Copied from <code>org.apache.catalina.valves.CertificateValve</code>
*/
+ @Override
public Integer getKeySize()
throws IOException {
// Look up the current SSLSession
return keySize;
}
+ @Override
public String getSessionId()
throws IOException {
// Look up the current SSLSession
private static class Listener implements HandshakeCompletedListener {
volatile boolean completed = false;
+ @Override
public void handshakeCompleted(HandshakeCompletedEvent event) {
completed = true;
}
/**
* Invalidate the session this support object is associated with.
*/
+ @Override
public void invalidateSession() {
session.invalidate();
}
this.serverKeyAlias = serverKeyAlias;
}
- public String chooseClientAlias(String[] keyType, Principal[] issuers, Socket socket) {
+ @Override
+ public String chooseClientAlias(String[] keyType, Principal[] issuers,
+ Socket socket) {
return delegate.chooseClientAlias(keyType, issuers, socket);
}
- public String chooseServerAlias(String keyType, Principal[] issuers, Socket socket) {
- if (serverKeyAlias!=null) {
+ @Override
+ public String chooseServerAlias(String keyType, Principal[] issuers,
+ Socket socket) {
+ if (serverKeyAlias != null) {
return serverKeyAlias;
- } else {
- return delegate.chooseServerAlias(keyType, issuers, socket);
}
+
+ return delegate.chooseServerAlias(keyType, issuers, socket);
}
+ @Override
public X509Certificate[] getCertificateChain(String alias) {
return delegate.getCertificateChain(alias);
}
+ @Override
public String[] getClientAliases(String keyType, Principal[] issuers) {
return delegate.getClientAliases(keyType, issuers);
}
+ @Override
public PrivateKey getPrivateKey(String alias) {
return delegate.getPrivateKey(alias);
}
+ @Override
public String[] getServerAliases(String keyType, Principal[] issuers) {
return delegate.getServerAliases(keyType, issuers);
}
@Override
- public String chooseEngineServerAlias(String keyType, Principal[] issuers, SSLEngine engine) {
+ public String chooseEngineServerAlias(String keyType, Principal[] issuers,
+ SSLEngine engine) {
if (serverKeyAlias!=null) {
return serverKeyAlias;
- } else {
- return super.chooseEngineServerAlias(keyType, issuers, engine);
}
- }
-
-
+ return super.chooseEngineServerAlias(keyType, issuers, engine);
+ }
}