luetzkendorf 2004/09/03 07:42:12
Modified: src/share/org/apache/slide/lock Tag:
SLIDE_2_1_RELEASE_BRANCH LockImpl.java
Log:
fix for bug 30982, and some cosmetics
Revision Changes Path
No revision
No revision
1.47.2.1 +25 -18 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.47
retrieving revision 1.47.2.1
diff -u -r1.47 -r1.47.2.1
--- LockImpl.java 5 Aug 2004 15:44:57 -0000 1.47
+++ LockImpl.java 3 Sep 2004 14:42:12 -0000 1.47.2.1
@@ -534,21 +534,27 @@
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.equals(SubjectNode.UNAUTHENTICATED) &&
- ownerNode.equals(principalNode)) {
- return true;
+ // if org.apache.slide.principalIdentifiedLocks is true the lock-owner
+ // must not provide the lock token (i.e. it must not be present in the
+ // slide token)
+ if (Configuration.usePrincipalIdentifiedLocks()) {
+ SubjectNode principalNode = null;
+ SubjectNode ownerNode =
SubjectNode.getSubjectNode(token.getSubjectUri());
+ try {
+ principalNode =
(SubjectNode)securityHelper.getPrincipal(slideToken);
+ }
+ catch (SlideException e) {}
+
+ if (ownerNode != null &&
+ !ownerNode.equals(SubjectNode.UNAUTHENTICATED) &&
+ ownerNode.equals(principalNode))
+ {
+ return true;
+ }
+ return (slideToken.checkLockToken(token.getLockId()));
+ } else {
+ return (slideToken.checkLockToken(token.getLockId()));
}
- else {
- return (slideToken.checkLockToken(token.getLockId()));
- }
}
/**
@@ -748,6 +754,7 @@
if ((tryToLock && condition1 && condition4)
|| (condition3 && !condition2 && !condition6)
|| (condition3 && !condition5 && condition6)
+ || (condition5 && !condition2) // FIXES 30982
){
compatible = false;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]