org.systinet.wasp.security.ws
Class SharedSecretToken

java.lang.Object
  extended byorg.systinet.wasp.security.ws.ReferrableElement
      extended byorg.systinet.wasp.security.ws.SecurityToken
          extended byorg.systinet.wasp.security.ws.SharedSecretToken

public class SharedSecretToken
extends SecurityToken

Represents shared secret token. Suitable for message signing and encryption. This is Systinet proprietary token type.

The following algorithms are supported:

Note that in order to be able to receive messages which contain data encrypted with shared secret token, corresponding instance of SharedSecretToken has to be added to external (context) tokens, for example:
 // shared secret key bytes - both parties should know it
 byte[] tripleDESkey = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23};

 // create SecretKey instance for TripleDES algorithm
 SecretKey secretKey = new SecretKeySpec(tripleDESkey, Constants.SK_KEY_ALGORITHM_TRIPLEDES);

 // create shared secret token with key name http://systinet.com/example/symmetric
 SharedSecretToken token = new SharedSecretToken("http://systinet.com/example/symmetric", secretKey);

 // create context security configuration
 MessageSecurity ms = new MessageSecurity();

 // add the token to external tokens in context security configuration
 ms.addExternalToken(token);

 // set context security configuration
 ms.setContextSecurity(...); // ServiceClient or ServiceEndpoint instance
 

Since:
4.6
See Also:
UsernameToken, X509Token
Component:
Security-Providers

Field Summary
 
Fields inherited from class org.systinet.wasp.security.ws.SecurityToken
NULL_PROPERTY_CONF_ARRAY
 
Constructor Summary
SharedSecretToken(java.lang.String keyName, javax.crypto.SecretKey secretKey)
          Initializes the token with the specified key name and shared secret.
 
Method Summary
protected  java.lang.String getEncryptionMethodHint()
          Returns encryption method hint.
protected  java.lang.String getKeyEncryptionMethodHint()
          Returns key encryption method hint.
protected  SecurityTokenConf getSecurityTokenConf(MessageConf messageConf)
          Creates low-level API token configuration.
protected  java.lang.String getSignatureMethodHint()
          Returns signature method hint.
protected  java.lang.String getTokenReferenceModeHint(SecurityElement securityElement)
          Returns token reference mode hint.
 
Methods inherited from class org.systinet.wasp.security.ws.SecurityToken
getExternalTokenReferenceModeHint
 
Methods inherited from class org.systinet.wasp.security.ws.ReferrableElement
getId, getIdForced, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SharedSecretToken

public SharedSecretToken(java.lang.String keyName,
                         javax.crypto.SecretKey secretKey)
Initializes the token with the specified key name and shared secret.

Parameters:
keyName - key name
secretKey - secret key
Method Detail

getSecurityTokenConf

protected SecurityTokenConf getSecurityTokenConf(MessageConf messageConf)
Creates low-level API token configuration.

Specified by:
getSecurityTokenConf in class SecurityToken
Returns:
token configuration

getTokenReferenceModeHint

protected java.lang.String getTokenReferenceModeHint(SecurityElement securityElement)
Returns token reference mode hint.

Specified by:
getTokenReferenceModeHint in class SecurityToken
Returns:
Constants.STM_KEYNAME

getSignatureMethodHint

protected java.lang.String getSignatureMethodHint()
Returns signature method hint.

Specified by:
getSignatureMethodHint in class SecurityToken
Returns:
Constants.ALGO_ID_SIGNATURE_MAC_HMAC_SHA1

getEncryptionMethodHint

protected java.lang.String getEncryptionMethodHint()
Returns encryption method hint.

Specified by:
getEncryptionMethodHint in class SecurityToken
Returns:
Constants.ALGO_ID_BLOCKCIPHER_TRIPLEDES

getKeyEncryptionMethodHint

protected java.lang.String getKeyEncryptionMethodHint()
Returns key encryption method hint.

Specified by:
getKeyEncryptionMethodHint in class SecurityToken
Returns:
null - no transported key