org.apache.ws.security.message
Class WSBaseMessage

java.lang.Object
  extended byorg.apache.ws.security.message.WSBaseMessage
Direct Known Subclasses:
WSAddTimestamp, WSEncryptBody, WSSAddSAMLToken, WSSAddUsernameToken, WSSignEnvelope

public class WSBaseMessage
extends java.lang.Object

This is the base class for WS Security messages. It provides common functions and fields used by the specific message classes such as sign, encrypt, and username token.

Author:
Werner Dittmann (Werner.Dittmann@siemens.com)

Field Summary
protected  java.lang.String actor
           
protected  boolean doDebug
           
protected  int keyIdentifierType
           
protected  boolean mustunderstand
           
protected  java.util.Vector parts
           
protected  java.lang.String password
           
protected  int timeToLive
           
protected  java.lang.String user
           
protected  WSSConfig wssConfig
           
 
Constructor Summary
WSBaseMessage()
          Constructor.
WSBaseMessage(java.lang.String actor)
          Constructor.
WSBaseMessage(java.lang.String actor, boolean mu)
          Constructor.
WSBaseMessage(WSSConfig wssConfig, java.lang.String actor, boolean mu)
          Constructor.
 
Method Summary
 int getKeyIdentifierType()
          Gets the value of the keyIdentifyerType.
protected  org.w3c.dom.Element insertSecurityHeader(org.w3c.dom.Document doc)
          Creates a security header and inserts it as child into the SOAP Envelope.
 void setActor(java.lang.String act)
          set actor name.
protected  java.lang.String setBodyID(org.w3c.dom.Document doc)
          Looks up or adds a body id.
 void setKeyIdentifierType(int keyIdType)
          Sets which key identifier to use.
 void setMustUnderstand(boolean mu)
          Set the mustUnderstand flag for the wsse:Security header
 void setParts(java.util.Vector parts)
          Set which parts of the message to encrypt/sign.
 void setTimeToLive(int ttl)
          Set the time to live.
 void setUserInfo(java.lang.String user, java.lang.String password)
          Set the user and password info.
protected  java.lang.String setWsuId(org.w3c.dom.Element bodyElement)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

actor

protected java.lang.String actor

mustunderstand

protected boolean mustunderstand

user

protected java.lang.String user

password

protected java.lang.String password

keyIdentifierType

protected int keyIdentifierType

parts

protected java.util.Vector parts

timeToLive

protected int timeToLive

wssConfig

protected WSSConfig wssConfig

doDebug

protected boolean doDebug
Constructor Detail

WSBaseMessage

public WSBaseMessage()
Constructor.


WSBaseMessage

public WSBaseMessage(java.lang.String actor)
Constructor.

Parameters:
actor - The actor name of the wsse:Security header

WSBaseMessage

public WSBaseMessage(java.lang.String actor,
                     boolean mu)
Constructor.

Parameters:
actor - The actor name of the wsse:Security header
mu - Set mustUnderstand to true or false

WSBaseMessage

public WSBaseMessage(WSSConfig wssConfig,
                     java.lang.String actor,
                     boolean mu)
Constructor.

Parameters:
wssConfig - configuration options for processing and building security headers
actor - The actor name of the wsse:Security header
mu - Set mustUnderstand to true or false
Method Detail

setActor

public void setActor(java.lang.String act)
set actor name.

Parameters:
act - The actor name of the wsse:Security header

setTimeToLive

public void setTimeToLive(int ttl)
Set the time to live. This is the time difference in seconds between the Created and the Expires in Timestamp.

Parameters:
ttl - The time to live in second

setParts

public void setParts(java.util.Vector parts)
Set which parts of the message to encrypt/sign.


setMustUnderstand

public void setMustUnderstand(boolean mu)
Set the mustUnderstand flag for the wsse:Security header

Parameters:
mu - Set mustUnderstand to true or false

setKeyIdentifierType

public void setKeyIdentifierType(int keyIdType)
Sets which key identifier to use.

Defines the key identifier type to use in the signature or the ecnryption function to set up the key identification elements.

Parameters:
keyIdType -
See Also:
WSConstants.ISSUER_SERIAL, WSConstants.BST_DIRECT_REFERENCE, WSConstants.X509_KEY_IDENTIFIER, WSConstants.SKI_KEY_IDENTIFIER

getKeyIdentifierType

public int getKeyIdentifierType()
Gets the value of the keyIdentifyerType.

Returns:
The keyIdentifyerType.
See Also:
WSConstants.ISSUER_SERIAL, WSConstants.BST_DIRECT_REFERENCE, WSConstants.X509_KEY_IDENTIFIER, WSConstants.SKI_KEY_IDENTIFIER

setBodyID

protected java.lang.String setBodyID(org.w3c.dom.Document doc)
                              throws java.lang.Exception
Looks up or adds a body id.

First try to locate the wsu:Id in the SOAP body element. If one is found, the value of the wsu:Id attribute is returned. Otherwise the methode generates a new wsu:Id and an appropriate value.

Parameters:
doc - The SOAP envelope as Document
Returns:
The value of the wsu:Id attribute of the SOAP body
Throws:
java.lang.Exception

setWsuId

protected java.lang.String setWsuId(org.w3c.dom.Element bodyElement)

setUserInfo

public void setUserInfo(java.lang.String user,
                        java.lang.String password)
Set the user and password info.

Both information is used to get the user's private signing key.

Parameters:
user - This is the user's alias name in the keystore that identifies the private key to sign the document
password - The user's password to get the private signing key from the keystore

insertSecurityHeader

protected org.w3c.dom.Element insertSecurityHeader(org.w3c.dom.Document doc)
Creates a security header and inserts it as child into the SOAP Envelope.

Check if a WS Security header block for an actor is already available in the document. If a header block is found return it, otherwise a new wsse:Security header block is created and the attributes set

Parameters:
doc - A SOAP envelope as Document
Returns:
A wsse:Security element