org.jets3t.service.acl
Class AccessControlList

java.lang.Object
  extended by org.jets3t.service.acl.AccessControlList
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
GSAccessControlList

public class AccessControlList
extends java.lang.Object
implements java.io.Serializable

Represents an Amazon S3 Access Control List (ACL), including the ACL's set of grantees and the permissions assigned to each grantee.

Author:
James Murty
See Also:
Serialized Form

Field Summary
static AccessControlList REST_CANNED_AUTHENTICATED_READ
          A pre-canned REST ACL to set an object's permissions to Authenticated Read (authenticated Amazon users can read, only owner can write)
static AccessControlList REST_CANNED_PRIVATE
          A pre-canned REST ACL to set an object's permissions to Private (only owner can read/write)
static AccessControlList REST_CANNED_PUBLIC_READ
          A pre-canned REST ACL to set an object's permissions to Public Read (anyone can read, only owner can write)
static AccessControlList REST_CANNED_PUBLIC_READ_WRITE
          A pre-canned REST ACL to set an object's permissions to Public Read and Write (anyone can read/write)
 
Constructor Summary
AccessControlList()
           
 
Method Summary
 GrantAndPermission[] getGrantAndPermissions()
           
 java.util.List<GranteeInterface> getGranteesWithPermission(Permission permission)
           
 StorageOwner getOwner()
           
 java.util.List<Permission> getPermissionsForGrantee(GranteeInterface grantee)
           
 java.lang.String getValueForRESTHeaderACL()
           
 void grantAllPermissions(GrantAndPermission[] grantAndPermissions)
          Adds a set of grantee/permission pairs to the ACL, where each item in the set is a GrantAndPermission object.
 void grantPermission(GranteeInterface grantee, Permission permission)
          Adds a grantee to the ACL with the given permission.
 boolean hasGranteeAndPermission(GranteeInterface grantee, Permission permission)
           
 boolean isCannedRestACL()
          Deprecated. 0.8.0
 boolean isRESTHeaderACL()
           
 void revokeAllPermissions(GranteeInterface grantee)
          Revokes the permissions of a grantee by removing the grantee from the ACL.
 void setOwner(StorageOwner owner)
           
 java.lang.String toString()
          Returns a string representation of the ACL contents, useful for debugging.
 java.lang.String toXml()
           
 com.jamesmurty.utils.XMLBuilder toXMLBuilder()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

REST_CANNED_PRIVATE

public static final AccessControlList REST_CANNED_PRIVATE
A pre-canned REST ACL to set an object's permissions to Private (only owner can read/write)


REST_CANNED_PUBLIC_READ

public static final AccessControlList REST_CANNED_PUBLIC_READ
A pre-canned REST ACL to set an object's permissions to Public Read (anyone can read, only owner can write)


REST_CANNED_PUBLIC_READ_WRITE

public static final AccessControlList REST_CANNED_PUBLIC_READ_WRITE
A pre-canned REST ACL to set an object's permissions to Public Read and Write (anyone can read/write)


REST_CANNED_AUTHENTICATED_READ

public static final AccessControlList REST_CANNED_AUTHENTICATED_READ
A pre-canned REST ACL to set an object's permissions to Authenticated Read (authenticated Amazon users can read, only owner can write)

Constructor Detail

AccessControlList

public AccessControlList()
Method Detail

toString

public java.lang.String toString()
Returns a string representation of the ACL contents, useful for debugging.

Overrides:
toString in class java.lang.Object

getOwner

public StorageOwner getOwner()

setOwner

public void setOwner(StorageOwner owner)

getPermissionsForGrantee

public java.util.List<Permission> getPermissionsForGrantee(GranteeInterface grantee)
Parameters:
grantee -
Returns:
list of permissions assigned to the given grantee in this ACL

getGranteesWithPermission

public java.util.List<GranteeInterface> getGranteesWithPermission(Permission permission)
Parameters:
permission -
Returns:
list of grantees assigned the given permission in this ACL

hasGranteeAndPermission

public boolean hasGranteeAndPermission(GranteeInterface grantee,
                                       Permission permission)
Parameters:
grantee -
permission -
Returns:
true if the given grantee has the given permission in this ACL

grantPermission

public void grantPermission(GranteeInterface grantee,
                            Permission permission)
Adds a grantee to the ACL with the given permission. If this ACL already contains the grantee (ie the same grantee object) the permission for the grantee will be updated.

Parameters:
grantee - the grantee to whom the permission will apply
permission - the permission to apply to the grantee.

grantAllPermissions

public void grantAllPermissions(GrantAndPermission[] grantAndPermissions)
Adds a set of grantee/permission pairs to the ACL, where each item in the set is a GrantAndPermission object.

Parameters:
grantAndPermissions - the grant and permission combinations to add.

revokeAllPermissions

public void revokeAllPermissions(GranteeInterface grantee)
Revokes the permissions of a grantee by removing the grantee from the ACL.

Parameters:
grantee - the grantee to remove from this ACL.

getGrantAndPermissions

public GrantAndPermission[] getGrantAndPermissions()
Returns:
the grant and permission collections in this ACL.

toXMLBuilder

public com.jamesmurty.utils.XMLBuilder toXMLBuilder()
                                             throws ServiceException,
                                                    javax.xml.parsers.ParserConfigurationException,
                                                    javax.xml.parsers.FactoryConfigurationError,
                                                    javax.xml.transform.TransformerException
Throws:
ServiceException
javax.xml.parsers.ParserConfigurationException
javax.xml.parsers.FactoryConfigurationError
javax.xml.transform.TransformerException

toXml

public java.lang.String toXml()
                       throws ServiceException
Returns:
an XML representation of the Access Control List object, suitable to send to a storage service in the request body.
Throws:
ServiceException

isCannedRestACL

@Deprecated
public boolean isCannedRestACL()
Deprecated. 0.8.0

Returns:
true if this ACL is a REST pre-canned one, in which case REST/HTTP implementations can use the x-amz-acl header as a short-cut to set permissions on upload rather than using a full ACL XML document.

isRESTHeaderACL

public boolean isRESTHeaderACL()
Returns:
true if this ACL can be set via an HTTP header, rather than via an XML document.

getValueForRESTHeaderACL

public java.lang.String getValueForRESTHeaderACL()
Returns:
the header value string for this ACL if it is a canned ACL, otherwise return null;