You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by ju...@apache.org on 2001/05/16 14:06:19 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/security Security.java SecurityImpl.java

juergen     01/05/16 05:06:18

  Modified:    src/share/org/apache/slide/security Security.java
                        SecurityImpl.java
  Log:
  removed the NRD from the API, to be put in NodePermission, see e-mails.
  
  Revision  Changes    Path
  1.16      +15 -30    jakarta-slide/src/share/org/apache/slide/security/Security.java
  
  Index: Security.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- Security.java	2001/05/10 18:36:39	1.15
  +++ Security.java	2001/05/16 12:06:12	1.16
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v 1.15 2001/05/10 18:36:39 juergen Exp $
  - * $Revision: 1.15 $
  - * $Date: 2001/05/10 18:36:39 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v 1.16 2001/05/16 12:06:12 juergen Exp $
  + * $Revision: 1.16 $
  + * $Date: 2001/05/16 12:06:12 $
    *
    * ====================================================================
    *
  @@ -68,13 +68,12 @@
   import org.apache.slide.structure.*;
   import org.apache.slide.authenticate.CredentialsToken;
   import org.apache.slide.util.Configuration;
  -import org.apache.slide.content.NodeRevisionDescriptor;
   
   /**
    * Security helper.
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.15 $
  + * @version $Revision: 1.16 $
    */
   public interface Security {
       
  @@ -87,13 +86,12 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    Enumeration enumeratePermissions(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor)
  +    Enumeration enumeratePermissions(SlideToken token, ObjectNode object)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
       
  @@ -103,13 +101,12 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    Enumeration enumeratePermissions(SlideToken token, String object, NodeRevisionDescriptor revisionDescriptor)
  +    Enumeration enumeratePermissions(SlideToken token, String object)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
       
  @@ -119,13 +116,12 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void setPermissions(SlideToken token, String object, NodeRevisionDescriptor revisionDescriptor,
  +    void setPermissions(SlideToken token, String object, 
                           Enumeration permissions)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
  @@ -136,7 +132,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @param activity Activity which the actor can perform
        * @param collection Collection on which the actor can perform
        * the specified action
  @@ -145,7 +140,7 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void grantPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    void grantPermission(SlideToken token, ObjectNode object,
                            SubjectNode subject, ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
  @@ -155,14 +150,13 @@
        * Grants a new permission.
        *
        * @param token Credentials token
  -     * @param revisionDescriptor Node revision descriptor
        * @param permission New permission
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void grantPermission(SlideToken token, NodeRevisionDescriptor revisionDescriptor, NodePermission permission)
  +    void grantPermission(SlideToken token, NodePermission permission)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
       
  @@ -172,7 +166,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who can perform the action
        * @param action Action which can be performed
        * @param inheritable Create an inheritable permission
  @@ -181,7 +174,7 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void grantPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    void grantPermission(SlideToken token, ObjectNode object,
                            SubjectNode subject, ActionNode action,
                            boolean inheritable)
           throws ServiceAccessException, ObjectNotFoundException,
  @@ -194,7 +187,6 @@
        * @param token Credentials token
        * @param object Object on which permission is granted
        * @param activity Activity which the actor can perform
  -     * @param revisionDescriptor Node revision descriptor
        * @param collection Collection on which the actor can perform
        * the specified action
        * @exception ServiceAccessException DataSource access error
  @@ -202,7 +194,7 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void denyPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    void denyPermission(SlideToken token, ObjectNode object,
                           SubjectNode subject, ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
  @@ -212,14 +204,13 @@
        * Deny a new permission.
        *
        * @param token Credentials token
  -     * @param revisionDescriptor Node revision descriptor
        * @param permission New permission
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void denyPermission(SlideToken token, NodeRevisionDescriptor revisionDescriptor, NodePermission permission)
  +    void denyPermission(SlideToken token, NodePermission permission)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
       
  @@ -229,7 +220,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who can perform the action
        * @param action Action which can be performed
        * @param inheritable Create an inheritable permission
  @@ -238,7 +228,7 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void denyPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    void denyPermission(SlideToken token, ObjectNode object,
                           SubjectNode subject, ActionNode action,
                           boolean inheritable)
           throws ServiceAccessException, ObjectNotFoundException,
  @@ -250,7 +240,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is revoked
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who can perform the action
        * @param action Action which can be performed
        * @exception ServiceAccessException DataSource access error
  @@ -258,7 +247,7 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void revokePermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    void revokePermission(SlideToken token, ObjectNode object,
                             SubjectNode subject, ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
  @@ -268,14 +257,13 @@
        * Revokes a permission.
        *
        * @param token Credentials token
  -     * @param revisionDescriptor Node revision descriptor
        * @param permission Permission to be removed
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void revokePermission(SlideToken token, NodeRevisionDescriptor revisionDescriptor, NodePermission permission)
  +    public void revokePermission(SlideToken token, NodePermission permission)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
               
  @@ -288,13 +276,12 @@
        *
        * @param token Credentials token
        * @param object Object on which the action is performed
  -     * @param revisionDescriptor Node revision descriptor
        * @param action Action performed
        * @exception ServiceAccessException DataSource access error
        * @exception AccessDeniedException The credentials does not grant
        * the permission to perform the specified action
        */
  -    void checkCredentials(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    void checkCredentials(SlideToken token, ObjectNode object,
                             ActionNode action)
           throws ServiceAccessException, AccessDeniedException;
       
  @@ -304,7 +291,6 @@
        * on a collection.
        *
        * @param object Object on which access is tested
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who seeks to perform the action
        * @param action Action which is to be performed
        * @exception ServiceAccessException DataSource access error
  @@ -312,7 +298,7 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    void checkPermission(ObjectNode object, NodeRevisionDescriptor revisionDescriptor, SubjectNode subject,
  +    void checkPermission(ObjectNode object, SubjectNode subject,
                            ActionNode action)
           throws ServiceAccessException, AccessDeniedException,
           ObjectNotFoundException;
  @@ -323,7 +309,6 @@
        * on a collection.
        *
        * @param object Object on which access is tested
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who seeks to perform the action
        * @param action Action which is to be performed
        * @return true if the action can be performed
  @@ -331,8 +316,8 @@
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        */
  -    boolean hasPermission(ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  -                          SubjectNode subject, ActionNode action)
  +    boolean hasPermission(ObjectNode object, SubjectNode subject,
  +                          ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException;
       
       
  
  
  
  1.26      +45 -61    jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java
  
  Index: SecurityImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- SecurityImpl.java	2001/05/10 18:36:41	1.25
  +++ SecurityImpl.java	2001/05/16 12:06:14	1.26
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v 1.25 2001/05/10 18:36:41 juergen Exp $
  - * $Revision: 1.25 $
  - * $Date: 2001/05/10 18:36:41 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v 1.26 2001/05/16 12:06:14 juergen Exp $
  + * $Revision: 1.26 $
  + * $Date: 2001/05/16 12:06:14 $
    *
    * ====================================================================
    *
  @@ -72,12 +72,12 @@
   import org.apache.slide.structure.*;
   import org.apache.slide.authenticate.CredentialsToken;
   import org.apache.slide.util.Configuration;
  -import org.apache.slide.content.NodeRevisionDescriptor;
  +
   /**
    * Security helper.
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.25 $
  + * @version $Revision: 1.26 $
    */
   public final class SecurityImpl implements Security {
       
  @@ -128,13 +128,12 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void setPermissions(SlideToken token, String object, NodeRevisionDescriptor revisionDescriptor,
  +    public void setPermissions(SlideToken token, String object, 
                                  Enumeration permissions)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
  @@ -142,17 +141,17 @@
           Uri objectUri = namespace.getUri(token, object);
           ObjectNode objectNode = objectUri.getStore().retrieveObject(objectUri);
           
  -        checkCredentials(token, objectNode, revisionDescriptor,
  +        checkCredentials(token, objectNode,
                            namespaceConfig.getGrantPermissionAction());
  -        checkCredentials(token, objectNode, revisionDescriptor,
  +        checkCredentials(token, objectNode,
                            namespaceConfig.getRevokePermissionAction());
           
  -        objectUri.getStore().revokePermissions(objectUri, revisionDescriptor);
  +        objectUri.getStore().revokePermissions(objectUri);
           
           while (permissions.hasMoreElements()) {
  -            NodePermission permission =
  +            NodePermission permission = 
                   (NodePermission) permissions.nextElement();
  -            objectUri.getStore().grantPermission(objectUri, revisionDescriptor, permission);
  +            objectUri.getStore().grantPermission(objectUri, permission);
           }
           
       }
  @@ -163,7 +162,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @param activity Activity which the actor can perform
        * @param collection Collection on which the actor can perform
        * the specified action
  @@ -172,11 +170,11 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void grantPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    public void grantPermission(SlideToken token, ObjectNode object,
                                   SubjectNode subject, ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
  -        grantPermission(token, object, revisionDescriptor, subject, action, true);
  +        grantPermission(token, object, subject, action, true);
       }
       
       
  @@ -185,7 +183,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who can perform the action
        * @param action Action which can be performed
        * @param inheritable Create an inheritable permission
  @@ -194,14 +191,14 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void grantPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    public void grantPermission(SlideToken token, ObjectNode object,
                                   SubjectNode subject, ActionNode action,
                                   boolean inheritable)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
           NodePermission permission = new NodePermission(object, subject, action,
                                                          inheritable);
  -        grantPermission(token, revisionDescriptor, permission);
  +        grantPermission(token, permission);
       }
       
       
  @@ -209,14 +206,13 @@
        * Grants a new permission.
        *
        * @param token Credentials token
  -     * @param revisionDescriptor Node revision descriptor
        * @param permission New permission
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void grantPermission(SlideToken token, NodeRevisionDescriptor revisionDescriptor,
  +    public void grantPermission(SlideToken token,
                                   NodePermission permission)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
  @@ -225,7 +221,7 @@
               .retrieveObject(objectUri);
           
           // Checking if the permission is already present
  -        Enumeration permissions = enumeratePermissions(token, object, revisionDescriptor);
  +        Enumeration permissions = enumeratePermissions(token, object);
           boolean alreadyPresent = false;
           while (permissions.hasMoreElements() && !alreadyPresent) {
               if (permission.equals(permissions.nextElement())) {
  @@ -234,9 +230,9 @@
           }
           
           if (!alreadyPresent) {
  -            checkCredentials(token, object, revisionDescriptor,
  +            checkCredentials(token, object,
                                namespaceConfig.getGrantPermissionAction());
  -            objectUri.getStore().grantPermission(objectUri, revisionDescriptor, permission);
  +            objectUri.getStore().grantPermission(objectUri, permission);
           }
       }
       
  @@ -246,7 +242,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @param activity Activity which the actor can perform
        * @param collection Collection on which the actor can perform
        * the specified action
  @@ -255,11 +250,11 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void denyPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    public void denyPermission(SlideToken token, ObjectNode object,
                                  SubjectNode subject, ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
  -        denyPermission(token, object, revisionDescriptor, subject, action, true);
  +        denyPermission(token, object, subject, action, true);
       }
       
       
  @@ -268,7 +263,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who can perform the action
        * @param action Action which can be performed
        * @param inheritable Create an inheritable permission
  @@ -277,14 +271,14 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void denyPermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    public void denyPermission(SlideToken token, ObjectNode object,
                                  SubjectNode subject, ActionNode action,
                                  boolean inheritable)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
           NodePermission permission = new NodePermission(object, subject, action,
                                                          inheritable, true);
  -        denyPermission(token, revisionDescriptor, permission);
  +        denyPermission(token, permission);
       }
       
       
  @@ -292,14 +286,13 @@
        * Deny a new permission.
        *
        * @param token Credentials token
  -     * @param revisionDescriptor Node revision descriptor
        * @param permission New permission
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void denyPermission(SlideToken token, NodeRevisionDescriptor revisionDescriptor,
  +    public void denyPermission(SlideToken token,
                                   NodePermission permission)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
  @@ -307,7 +300,7 @@
           // permission
           if (!permission.isNegative())
               permission.setNegative(true);
  -        grantPermission(token, revisionDescriptor, permission);
  +        grantPermission(token, permission);
       }
        
       
  @@ -316,7 +309,6 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is revoked
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who can perform the action
        * @param action Action which can be performed
        * @exception ServiceAccessException DataSource access error
  @@ -324,18 +316,18 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void revokePermission(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    public void revokePermission(SlideToken token, ObjectNode object,
                                    SubjectNode subject, ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
           //Domain.info("Revoke permission on " + object.getUri());
  -        checkCredentials(token, object, revisionDescriptor,
  -                         namespaceConfig.getRevokePermissionAction());
  +        checkCredentials(token, object, namespaceConfig
  +                         .getRevokePermissionAction());
           NodePermission permission = new NodePermission(object, subject,
                                                          action);
           Uri objectUri = namespace.getUri(token, object.getUri());
           objectUri.getStore()
  -            .revokePermission(objectUri, revisionDescriptor, permission);
  +            .revokePermission(objectUri, permission);
       }
       
       
  @@ -344,24 +336,22 @@
        * Revokes a permission.
        *
        * @param token Credentials token
  -     * @param revisionDescriptor Node revision descriptor
        * @param permission Permission to be removed
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void revokePermission(SlideToken token, NodeRevisionDescriptor revisionDescriptor,
  -                                 NodePermission permission)
  +    public void revokePermission(SlideToken token, NodePermission permission)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
               
           Uri objectUri = namespace.getUri(token, permission.getObjectUri());
           ObjectNode object = objectUri.getStore().retrieveObject(objectUri);
               
  -        checkCredentials(token, object, revisionDescriptor,
  +        checkCredentials(token, object, 
                            namespaceConfig.getRevokePermissionAction());
  -        objectUri.getStore().revokePermission(objectUri, revisionDescriptor, permission);
  +        objectUri.getStore().revokePermission(objectUri, permission);
       }
       
       
  @@ -371,13 +361,12 @@
        *
        * @param token Credentials token
        * @param object Object on which the action is performed
  -     * @param revisionDescriptor Node revision descriptor
        * @param action Action performed
        * @exception ServiceAccessException DataSource access error
        * @exception AccessDeniedException The credentials does not grant
        * the permission to perform the specified action
        */
  -    public void checkCredentials(SlideToken token, ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  +    public void checkCredentials(SlideToken token, ObjectNode object,
                                    ActionNode action)
           throws ServiceAccessException, AccessDeniedException {
           try {
  @@ -386,7 +375,7 @@
                   ObjectNode realObject = objectUri.getStore()
                       .retrieveObject(objectUri);
                   SubjectNode subject = (SubjectNode) getPrincipal(token);
  -                checkPermission(realObject, revisionDescriptor, subject, action);
  +                checkPermission(realObject, subject, action);
               }
           } catch (ObjectNotFoundException e) {
               throw new AccessDeniedException
  @@ -402,7 +391,6 @@
        * on a collection.
        *
        * @param object Object on which access is tested
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who seeks to perform the action
        * @param action Action which is to be performed
        * @exception ServiceAccessException DataSource access error
  @@ -410,12 +398,12 @@
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
  -    public void checkPermission(ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  -                                SubjectNode subject, ActionNode action)
  +    public void checkPermission(ObjectNode object, SubjectNode subject,
  +                                ActionNode action)
           throws ServiceAccessException, AccessDeniedException,
           ObjectNotFoundException {
           
  -        if (!hasPermission(object, revisionDescriptor, subject, action)) {
  +        if (!hasPermission(object, subject, action)) {
               throw new AccessDeniedException(object.getUri(), subject.getUri(),
                                               action.getUri());
           }
  @@ -428,7 +416,6 @@
        * on a collection.
        *
        * @param object Object on which access is tested
  -     * @param revisionDescriptor Node revision descriptor
        * @param subject Subject who seeks to perform the action
        * @param action Action which is to be performed
        * @return true if the action can be performed
  @@ -436,8 +423,7 @@
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        */
  -    public boolean hasPermission(ObjectNode object, NodeRevisionDescriptor revisionDescriptor,
  -                                 SubjectNode subject,
  +    public boolean hasPermission(ObjectNode object, SubjectNode subject,
                                    ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException {
           
  @@ -454,7 +440,7 @@
               
               Uri courUri = namespace.getUri(courObject.getUri());
               Enumeration permissions = courUri.getStore()
  -                .enumeratePermissions(courUri, revisionDescriptor);
  +                .enumeratePermissions(courUri);
               
               while (permissions.hasMoreElements()) {
                   
  @@ -524,14 +510,14 @@
                                       oldGranted = granted;
                                       oldDenied = denied;
                                       
  -                                    Uri childUri =
  +                                    Uri childUri = 
                                           namespace.getUri
                                           ((String) groupMembers.nextElement());
                                       ObjectNode childNode =
                                           childUri.getStore().retrieveObject
                                           (childUri);
                                       String childSubjectUri = childNode
  -                                        instanceof LinkNode ?
  +                                        instanceof LinkNode ? 
                                           ((LinkNode) childNode)
                                           .getLinkedUri() :
                                           childNode.getUri() ;
  @@ -607,17 +593,16 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
       public Enumeration enumeratePermissions(SlideToken token,
  -                                            ObjectNode object, NodeRevisionDescriptor revisionDescriptor)
  +                                            ObjectNode object)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
  -        return enumeratePermissions(token, object.getUri(), revisionDescriptor);
  +        return enumeratePermissions(token, object.getUri());
       }
       
       
  @@ -626,18 +611,17 @@
        *
        * @param token Credentials token
        * @param object Object on which permission is granted
  -     * @param revisionDescriptor Node revision descriptor
        * @exception ServiceAccessException DataSource access error
        * @exception ObjectNotFoundException Specified object was not found
        * in the DataSource
        * @exception AccessDeniedException Insufficent credentials
        */
       public Enumeration enumeratePermissions(SlideToken token,
  -                                            String object, NodeRevisionDescriptor revisionDescriptor)
  +                                            String object)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException {
           Uri objectUri = namespace.getUri(token, object);
  -        return objectUri.getStore().enumeratePermissions(objectUri, revisionDescriptor);
  +        return objectUri.getStore().enumeratePermissions(objectUri);
       }
       
       
  @@ -785,7 +769,7 @@
                   try {
                       
                       Uri parentUri = subjectUri.getParentUri();
  -                    ObjectNode parent =
  +                    ObjectNode parent = 
                           subjectUri.getStore().retrieveObject(parentUri);
                       Enumeration childrenEnum = parent.enumerateChildren();
                       Enumeration linksEnum = parent.enumerateLinks();
  @@ -804,13 +788,13 @@
                           (namespaceConfig.getAutoCreateUsersRole());
                       Class[] types = { String.class };
                       Object[] args = { subjectUri.toString() };
  -                    Constructor constructor =
  +                    Constructor constructor = 
                           objectClass.getConstructor(types);
  -                    ObjectNode object =
  +                    ObjectNode object = 
                           (ObjectNode) constructor.newInstance(args);
                       subjectUri.getStore().createObject(subjectUri, object);
                       
  -                    Class[] types2 =
  +                    Class[] types2 = 
                       { String.class, Vector.class, Vector.class };
                       Object[] args2 = { parentUri.toString(), children, links };
                       constructor = parent.getClass().getConstructor(types2);