com.ibm.wsspi.wssecurity.config
Class KeyStoreKeyLocator

java.lang.Object
  |
  +--com.ibm.wsspi.wssecurity.config.KeyStoreKeyLocator
All Implemented Interfaces:
Initializable, KeyLocator
Direct Known Subclasses:
WSIdKeyStoreMapKeyLocator

public class KeyStoreKeyLocator
extends java.lang.Object
implements KeyLocator

Maps an abstract key "name" to the actual key in KeyStore object.
This class accepts key store and key information. Key information consists of three pieces: abstract key "name", alias in the key store and optional key password (in case the key is not public one). These values are specified in WS-Security configuration XMI files and passed to init method as encoded name-value pairs.


Constructor Summary
KeyStoreKeyLocator()
          Invoked by WS-Security runtime.
 
Method Summary
static java.lang.String encodedName(java.lang.String dn)
          Encodes and normalizes a DName string to some degree.
 java.security.cert.Certificate getCertificate(java.security.Key key)
          Returns a certificate object which corresponds to the specified key.
 java.security.cert.Certificate getCertificate(java.lang.String name)
          Returns a certificate object which corresponds to the given abstract or concrete key "name".
protected  java.security.Key getConfidentialKey(java.lang.String name, java.lang.Object context)
          Returns either private key or shared key.
 java.security.Key getDecryptionKey(java.lang.String name, java.lang.Object context)
          Returns an decryption key.
protected  java.lang.String getDefaultBasePath()
          Reserved for the future use.
 java.security.Key getEncryptionKey(java.lang.String name, java.lang.Object context)
          Returns an encryption key.
 java.lang.String getName(java.security.Key key)
          Returns a concrete key "name" which corresponds to the specified key.
 java.lang.String getName(java.lang.String name)
          Returns a concrete key "name" which corresponds to the given abstract key "name", which is used as a value of the <KeyName> element.
 java.util.Set getNames(java.lang.Object context)
          Returns a Set object which contains all the concrete key "name"s.
 java.security.Key getSigningKey(java.lang.String name)
          Returns a signing key.
 java.security.Key getVerificationKey(java.lang.String name)
          Returns a verification key.
NOTE: This function is not implemented in current WS-Security runtime, because verification key is always embedded in the received message as <BinarySecurityToken>.
 void init(java.util.Map map)
          Initializes the object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KeyStoreKeyLocator

public KeyStoreKeyLocator()
Invoked by WS-Security runtime.
Method Detail

getDefaultBasePath

protected java.lang.String getDefaultBasePath()
Reserved for the future use.

init

public void init(java.util.Map map)
          throws SoapSecurityException
Description copied from interface: Initializable
Initializes the object.
Specified by:
init in interface Initializable
Following copied from interface: com.ibm.wsspi.wssecurity.Initializable
Parameters:
map - a Map object which contains name-value pairs. These pairs are specified in <Property> elements in the configuration XMI files.

getNames

public java.util.Set getNames(java.lang.Object context)
                       throws KeyLocatorException
Description copied from interface: KeyLocator
Returns a Set object which contains all the concrete key "name"s.
Specified by:
getNames in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
context - Reserved for the future use.
Returns:
A Set object which contains all the concrete key "name"s.

getConfidentialKey

protected java.security.Key getConfidentialKey(java.lang.String name,
                                               java.lang.Object context)
                                        throws KeyLocatorException
Returns either private key or shared key.
Parameters:
name - An abstract key "name".
context - Reserved for the future use.

getEncryptionKey

public java.security.Key getEncryptionKey(java.lang.String name,
                                          java.lang.Object context)
                                   throws KeyLocatorException
Description copied from interface: KeyLocator
Returns an encryption key.
Specified by:
getEncryptionKey in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
name - An abstract or concrete key "name".
context - Reserved for the future use.
Returns:
An encryption key.

getDecryptionKey

public java.security.Key getDecryptionKey(java.lang.String name,
                                          java.lang.Object context)
                                   throws KeyLocatorException
Description copied from interface: KeyLocator
Returns an decryption key.
Specified by:
getDecryptionKey in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
name - An abstract or concrete key "name".
context - Reserved for the future use.
Returns:
An decryption key.

getSigningKey

public java.security.Key getSigningKey(java.lang.String name)
                                throws KeyLocatorException
Description copied from interface: KeyLocator
Returns a signing key.
Specified by:
getSigningKey in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
name - An abstract or concrete key "name".
Returns:
A signing key.

getVerificationKey

public java.security.Key getVerificationKey(java.lang.String name)
                                     throws KeyLocatorException
Description copied from interface: KeyLocator
Returns a verification key.
NOTE: This function is not implemented in current WS-Security runtime, because verification key is always embedded in the received message as <BinarySecurityToken>.
Specified by:
getVerificationKey in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
name - An abstract or concrete key "name".
Returns:
A verification key.

getName

public java.lang.String getName(java.security.Key key)
                         throws KeyLocatorException
Description copied from interface: KeyLocator
Returns a concrete key "name" which corresponds to the specified key.
Specified by:
getName in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
key - A key which can be retrieved through the KeyLocator object.
Returns:
A concrete key "name".

getCertificate

public java.security.cert.Certificate getCertificate(java.security.Key key)
                                              throws KeyLocatorException
Description copied from interface: KeyLocator
Returns a certificate object which corresponds to the specified key.
Specified by:
getCertificate in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
key - A key which can be retrieved through the KeyLocator object.
Returns:
A certificate object.

getCertificate

public java.security.cert.Certificate getCertificate(java.lang.String name)
                                              throws KeyLocatorException
Description copied from interface: KeyLocator
Returns a certificate object which corresponds to the given abstract or concrete key "name".
Specified by:
getCertificate in interface KeyLocator
Following copied from interface: com.ibm.wsspi.wssecurity.config.KeyLocator
Parameters:
name - An abstract or concrete key "name".
Returns:
A certificate object.

encodedName

public static java.lang.String encodedName(java.lang.String dn)
                                    throws KeyLocatorException
Encodes and normalizes a DName string to some degree.
Parameters:
dn - A DName string.
Returns:
Encoded DName string.

getName

public java.lang.String getName(java.lang.String name)
                         throws KeyLocatorException
Returns a concrete key "name" which corresponds to the given abstract key "name", which is used as a value of the <KeyName> element.
Specified by:
getName in interface KeyLocator
Parameters:
name - An abstract key "name".
Returns:
A concrete key "name".