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


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
clone, equals, finalize, 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.