org.jets3t.service.utils.gatekeeper
Class GatekeeperMessage

java.lang.Object
  extended by org.jets3t.service.utils.gatekeeper.GatekeeperMessage

public class GatekeeperMessage
extends java.lang.Object

Represents a set of properties that will be sent to or received from a Gatekeeper service as a message document. This class includes utility methods to generate and parse plain text encodings of messages.

For more information about the Gatekeeper message format, please see: Gatekeeper Concepts

Author:
James Murty

Field Summary
static java.lang.String APP_PROPERTY_GATEKEEPER_ERROR_CODE
          The property name for storing error codes a Gatekeeper can return to a client.
static java.lang.String DELIM
          All message property names are delimited with a vertical bar (|).
static java.lang.String LIST_OBJECTS_IN_BUCKET_FLAG
          A flag name that indicates the Gatekeeper servlet should perform a bucket listing - for example as used by CockpitLite
static java.lang.String PROPERTY_CLIENT_VERSION_ID
          The property name for storing information about a client application such as its version number.
static java.lang.String PROPERTY_PRIOR_FAILURE_MESSAGE
          The property name for storing information about prior failures in the gatekeeper client application.
static java.lang.String PROPERTY_TRANSACTION_ID
          The property name for message-specific transaction IDs: transactionId
static java.lang.String SUMMARY_DOCUMENT_METADATA_FLAG
          A flag name used to indicate when an S3Object is a summary XML document, as generated by the Uploader application.
 
Constructor Summary
GatekeeperMessage()
          Constructs a message with no properties.
 
Method Summary
 void addApplicationProperties(java.util.Map propertiesMap)
          Adds a set of application-specific properties to the message.
 void addApplicationProperty(java.lang.String propertyName, java.lang.String propertyValue)
          Adds an application-specific property to the message.
 void addMessageProperties(java.util.Map propertiesMap)
          Adds a set of message-specific properties to the message.
 void addMessageProperty(java.lang.String propertyName, java.lang.String propertyValue)
          Adds a message-specific property to the message.
 void addSignatureRequest(SignatureRequest signatureRequest)
          Adds a Signature Request to the message, indicating a request that a particular operation be allowed on a particular object.
 void addSignatureRequests(SignatureRequest[] signatureRequests)
          Adds multiple signature requests to the message.
static GatekeeperMessage decodeFromProperties(java.util.Map postProperties)
          Decodes (parses) a Gatekeeper message from the given properties.
 java.util.Properties encodeToProperties()
          Encodes a Gatekeeper message as a properties object, with all signature requests identified with a unique zero-based index number.
 java.util.Properties getApplicationProperties()
           
 java.util.Properties getMessageProperties()
           
 SignatureRequest[] getSignatureRequests()
          Returns the signature requests in a message.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DELIM

public static final java.lang.String DELIM
All message property names are delimited with a vertical bar (|).

See Also:
Constant Field Values

PROPERTY_TRANSACTION_ID

public static final java.lang.String PROPERTY_TRANSACTION_ID
The property name for message-specific transaction IDs: transactionId

See Also:
Constant Field Values

PROPERTY_PRIOR_FAILURE_MESSAGE

public static final java.lang.String PROPERTY_PRIOR_FAILURE_MESSAGE
The property name for storing information about prior failures in the gatekeeper client application.

See Also:
Constant Field Values

PROPERTY_CLIENT_VERSION_ID

public static final java.lang.String PROPERTY_CLIENT_VERSION_ID
The property name for storing information about a client application such as its version number. This information can be useful to server-side components to confirm compatibility with the client.

See Also:
Constant Field Values

APP_PROPERTY_GATEKEEPER_ERROR_CODE

public static final java.lang.String APP_PROPERTY_GATEKEEPER_ERROR_CODE
The property name for storing error codes a Gatekeeper can return to a client. The error codes can be any string value.

See Also:
Constant Field Values

SUMMARY_DOCUMENT_METADATA_FLAG

public static final java.lang.String SUMMARY_DOCUMENT_METADATA_FLAG
A flag name used to indicate when an S3Object is a summary XML document, as generated by the Uploader application.

See Also:
Constant Field Values

LIST_OBJECTS_IN_BUCKET_FLAG

public static final java.lang.String LIST_OBJECTS_IN_BUCKET_FLAG
A flag name that indicates the Gatekeeper servlet should perform a bucket listing - for example as used by CockpitLite

See Also:
Constant Field Values
Constructor Detail

GatekeeperMessage

public GatekeeperMessage()
Constructs a message with no properties.

Method Detail

addSignatureRequest

public void addSignatureRequest(SignatureRequest signatureRequest)
Adds a Signature Request to the message, indicating a request that a particular operation be allowed on a particular object.

Parameters:
signatureRequest -

addSignatureRequests

public void addSignatureRequests(SignatureRequest[] signatureRequests)
Adds multiple signature requests to the message.

Parameters:
signatureRequests -

getSignatureRequests

public SignatureRequest[] getSignatureRequests()
Returns the signature requests in a message. When this method is called on a request message, this list will include only the requested operations. When this method is called on a message that is a response from a Gatekeeper service, the resulting list will include the signed URLs or reasons why requests were declined.

Returns:
the set of signature requests in this message.

addApplicationProperty

public void addApplicationProperty(java.lang.String propertyName,
                                   java.lang.String propertyValue)
Adds an application-specific property to the message.

Parameters:
propertyName -
propertyValue -

addApplicationProperties

public void addApplicationProperties(java.util.Map propertiesMap)
Adds a set of application-specific properties to the message.

Parameters:
propertiesMap -

getApplicationProperties

public java.util.Properties getApplicationProperties()
Returns:
the application-specific properties in this message.

addMessageProperty

public void addMessageProperty(java.lang.String propertyName,
                               java.lang.String propertyValue)
Adds a message-specific property to the message.

Parameters:
propertyName -
propertyValue -

addMessageProperties

public void addMessageProperties(java.util.Map propertiesMap)
Adds a set of message-specific properties to the message.

Parameters:
propertiesMap -

getMessageProperties

public java.util.Properties getMessageProperties()
Returns:
the message-specific properties in this message.

encodeToProperties

public java.util.Properties encodeToProperties()
Encodes a Gatekeeper message as a properties object, with all signature requests identified with a unique zero-based index number.

Returns:
all the properties of the message.

decodeFromProperties

public static GatekeeperMessage decodeFromProperties(java.util.Map postProperties)
Decodes (parses) a Gatekeeper message from the given properties. Any properties that are not part of the message format are ignored.

Parameters:
postProperties -
Returns:
a Gatekeeper message object representing the contents of the properties.