ozeigermann    2004/03/01 03:14:22

  Modified:    src/share/org/apache/slide/security
                        SecurityImplAllGrant.java
  Log:
  As a fix of bug #27018, gracefully ignore permissions having dangling subjects
  
  Revision  Changes    Path
  1.7       +32 -10    
jakarta-slide/src/share/org/apache/slide/security/SecurityImplAllGrant.java
  
  Index: SecurityImplAllGrant.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImplAllGrant.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SecurityImplAllGrant.java 11 Feb 2004 11:30:18 -0000      1.6
  +++ SecurityImplAllGrant.java 1 Mar 2004 11:14:22 -0000       1.7
  @@ -34,6 +34,7 @@
   import org.apache.slide.structure.ObjectNode;
   import org.apache.slide.structure.ObjectNotFoundException;
   import org.apache.slide.structure.SubjectNode;
  +import org.apache.slide.util.logger.Logger;
   
   /**
    * Security helper.
  @@ -44,6 +45,8 @@
   public final class SecurityImplAllGrant extends SecurityImpl implements Security {
       
       
  +    protected static final String LOG_CHANNEL = 
SecurityImplAllGrant.class.getName();
  +
       // ----------------------------------------------------------- Constructors
       
       /**
  @@ -166,9 +169,18 @@
                           // Permission group which needs to be expanded
                           Uri permissionSubjectUri =
                               namespace.getUri(permissionSubject.substring(1));
  -                        ObjectNode group =
  -                            permissionSubjectUri.getStore().retrieveObject
  -                            (permissionSubjectUri);
  +                        ObjectNode group;
  +                        try {
  +                            group = 
permissionSubjectUri.getStore().retrieveObject(permissionSubjectUri);
  +                        } catch (ObjectNotFoundException onfe) {
  +                            namespace.getLogger().log(
  +                                "Gracefully ignoring permission of dangling subject 
" + permissionSubjectUri,
  +                                onfe,
  +                                LOG_CHANNEL,
  +                                Logger.WARNING);
  +                            // as a fix of bug #27018, gracefully ignore 
permissions having dangling subjects 
  +                            continue;
  +                        }
                           // if the node is a GroupNode, expand it out to
                           // normal permissions
                           if (group instanceof
  @@ -186,9 +198,19 @@
                                       Uri childUri =
                                           namespace.getUri
                                           ((String) groupMembers.nextElement());
  -                                    ObjectNode childNode =
  -                                        childUri.getStore().retrieveObject
  -                                        (childUri);
  +                                    ObjectNode childNode;
  +                                    try {
  +                                        childNode = 
childUri.getStore().retrieveObject(childUri);
  +                                    } catch (ObjectNotFoundException onfe) {
  +                                        namespace.getLogger().log(
  +                                            "Gracefully ignoring permission of 
dangling subject "
  +                                                + childUri,
  +                                            onfe,
  +                                            LOG_CHANNEL,
  +                                            Logger.WARNING);
  +                                        // as a fix of bug #27018, gracefully 
ignore permissions having dangling subjects 
  +                                        continue;
  +                                    }
                                       String childSubjectUri = childNode
                                           instanceof LinkNode ?
                                           ((LinkNode) childNode)
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to