org.apache.tomcat.util.net.jsse

Class JSSEKeyManager

public final class JSSEKeyManager extends Object implements X509KeyManager

X509KeyManager which allows selection of a specific keypair and certificate chain (identified by their keystore alias name) to be used by the server to authenticate itself to SSL clients.

Author: Jan Luehe

Constructor Summary
JSSEKeyManager(X509KeyManager mgr, String serverKeyAlias)
Constructor.
Method Summary
StringchooseClientAlias(String[] keyType, Principal[] issuers, Socket socket)
Choose an alias to authenticate the client side of a secure socket, given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
StringchooseServerAlias(String keyType, Principal[] issuers, Socket socket)
Returns this key manager's server key alias that was provided in the constructor.
X509Certificate[]getCertificateChain(String alias)
Returns the certificate chain associated with the given alias.
String[]getClientAliases(String keyType, Principal[] issuers)
Get the matching aliases for authenticating the client side of a secure socket, given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
PrivateKeygetPrivateKey(String alias)
Returns the key associated with the given alias.
String[]getServerAliases(String keyType, Principal[] issuers)
Get the matching aliases for authenticating the server side of a secure socket, given the public key type and the list of certificate issuer authorities recognized by the peer (if any).

Constructor Detail

JSSEKeyManager

public JSSEKeyManager(X509KeyManager mgr, String serverKeyAlias)
Constructor.

Parameters: mgr The X509KeyManager used as a delegate serverKeyAlias The alias name of the server's keypair and supporting certificate chain

Method Detail

chooseClientAlias

public String chooseClientAlias(String[] keyType, Principal[] issuers, Socket socket)
Choose an alias to authenticate the client side of a secure socket, given the public key type and the list of certificate issuer authorities recognized by the peer (if any).

Parameters: keyType The key algorithm type name(s), ordered with the most-preferred key type first issuers The list of acceptable CA issuer subject names, or null if it does not matter which issuers are used socket The socket to be used for this connection. This parameter can be null, in which case this method will return the most generic alias to use

Returns: The alias name for the desired key, or null if there are no matches

chooseServerAlias

public String chooseServerAlias(String keyType, Principal[] issuers, Socket socket)
Returns this key manager's server key alias that was provided in the constructor.

Parameters: keyType The key algorithm type name (ignored) issuers The list of acceptable CA issuer subject names, or null if it does not matter which issuers are used (ignored) socket The socket to be used for this connection. This parameter can be null, in which case this method will return the most generic alias to use (ignored)

Returns: Alias name for the desired key

getCertificateChain

public X509Certificate[] getCertificateChain(String alias)
Returns the certificate chain associated with the given alias.

Parameters: alias The alias name

Returns: Certificate chain (ordered with the user's certificate first and the root certificate authority last), or null if the alias can't be found

getClientAliases

public String[] getClientAliases(String keyType, Principal[] issuers)
Get the matching aliases for authenticating the client side of a secure socket, given the public key type and the list of certificate issuer authorities recognized by the peer (if any).

Parameters: keyType The key algorithm type name issuers The list of acceptable CA issuer subject names, or null if it does not matter which issuers are used

Returns: Array of the matching alias names, or null if there were no matches

getPrivateKey

public PrivateKey getPrivateKey(String alias)
Returns the key associated with the given alias.

Parameters: alias The alias name

Returns: The requested key, or null if the alias can't be found

getServerAliases

public String[] getServerAliases(String keyType, Principal[] issuers)
Get the matching aliases for authenticating the server side of a secure socket, given the public key type and the list of certificate issuer authorities recognized by the peer (if any).

Parameters: keyType The key algorithm type name issuers The list of acceptable CA issuer subject names, or null if it does not matter which issuers are used

Returns: Array of the matching alias names, or null if there were no matches

Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.