pnever      2003/12/03 09:34:25

  Modified:    src/share/org/apache/slide/lock LockImpl.java
               src/share/org/apache/slide/util Configuration.java
  Log:
  Added "principal identified locks".
  If security is on and the property org.apache.slide.principalIdentifiedLocks=true
  the opaquelocktoken is not checked when the authenticated user is the
  lock owner.
  
  Revision  Changes    Path
  1.38      +19 -4     jakarta-slide/src/share/org/apache/slide/lock/LockImpl.java
  
  Index: LockImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/lock/LockImpl.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- LockImpl.java     1 Dec 2003 12:10:49 -0000       1.37
  +++ LockImpl.java     3 Dec 2003 17:34:25 -0000       1.38
  @@ -560,7 +560,22 @@
       public boolean checkLockToken(SlideToken slideToken, NodeLock token) {
           if (!slideToken.isEnforceLockTokens())
               return true;
  +        
  +        SubjectNode principalNode = null;
  +        SubjectNode ownerNode = SubjectNode.getSubjectNode(token.getSubjectUri());
  +        try {
  +            principalNode = (SubjectNode)securityHelper.getPrincipal(slideToken);
  +        }
  +        catch (SlideException e) {}
  +        if (Configuration.usePrincipalIdentifiedLocks() &&
  +            ownerNode != null &&
  +            ownerNode != SubjectNode.UNAUTHENTICATED &&
  +            ownerNode.equals(principalNode)) {
  +            return true;
  +        }
  +        else {
           return (slideToken.checkLockToken(token.getLockId()));
  +    }
       }
       
       /**
  
  
  
  1.14      +33 -4     jakarta-slide/src/share/org/apache/slide/util/Configuration.java
  
  Index: Configuration.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/share/org/apache/slide/util/Configuration.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- Configuration.java        18 Aug 2003 06:51:52 -0000      1.13
  +++ Configuration.java        3 Dec 2003 17:34:25 -0000       1.14
  @@ -174,6 +174,15 @@
           
           
           /**
  +         * Property specifying whether principal-identified locks are supported.
  +         * <pre>
  +         * org.apache.slide.principalIdentifiedLocks
  +         * </pre>
  +         */
  +        public static final String PrincipalIdentifiedLocks = 
"org.apache.slide.principalIdentifiedLocks";
  +
  +
  +        /**
            * Property specifying whether to run in debug mode.
            * <pre>
            * org.apache.slide.debug
  @@ -248,6 +257,12 @@
       private static String _urlEncoding;
       
       
  +    /**
  +     * Principal identified locks.
  +     */
  +    private static boolean _principalIdentifiedLocks;
  +
  +
       // ------------------------------------------------------------- Properties
       
       
  @@ -311,6 +326,13 @@
           return _urlEncoding;
       }
       
  +    /**
  +     * Returns true if Principal identified locks are enabled.
  +     */
  +    public static boolean usePrincipalIdentifiedLocks() {
  +        return _principalIdentifiedLocks;
  +    }
  +
       
       // ------------------------------------------------------------ Initializer
       
  @@ -433,6 +455,13 @@
               _binding = true;
           } else {
               _binding = false;
  +        }
  +
  +        prop = _default.getProperty(Property.PrincipalIdentifiedLocks, "false");
  +        if (prop.equalsIgnoreCase("true") || prop.equalsIgnoreCase("on")) {
  +            _principalIdentifiedLocks = true;
  +        } else {
  +            _principalIdentifiedLocks = false;
           }
   
           String defaultEncoding = new 
java.io.InputStreamReader(System.in).getEncoding();
  
  
  

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

Reply via email to