Author: kwall
Date: Thu Oct  6 16:44:04 2016
New Revision: 1763630

URL: http://svn.apache.org/viewvc?rev=1763630&view=rev
Log:
QPID-7318: [Java Broker] [ACL] Fix defect that prevents cache being effective

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundAccessControl.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundSecurityToken.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundAccessControl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundAccessControl.java?rev=1763630&r1=1763629&r2=1763630&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundAccessControl.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundAccessControl.java
 Thu Oct  6 16:44:04 2016
@@ -94,7 +94,7 @@ public class CompoundAccessControl imple
         Map<AccessControl<?>, SecurityToken> compoundToken = token == null ? 
null : token.getCompoundToken(underlying);
         for(AccessControl control : underlying)
         {
-            SecurityToken underlyingToken = compoundToken == null ? null : 
compoundToken.get(underlying);
+            SecurityToken underlyingToken = compoundToken == null ? null : 
compoundToken.get(control);
             final Result result = control.authorise(underlyingToken, 
operation, configuredObject, arguments);
             if(result.isFinal())
             {

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundSecurityToken.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundSecurityToken.java?rev=1763630&r1=1763629&r2=1763630&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundSecurityToken.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/CompoundSecurityToken.java
 Thu Oct  6 16:44:04 2016
@@ -42,19 +42,15 @@ class CompoundSecurityToken implements S
     }
 
 
-    Map<AccessControl<?>, SecurityToken> getCompoundToken(final 
List<AccessControl<?>> underlying)
+    Map<AccessControl<?>, SecurityToken> getCompoundToken(final 
List<AccessControl<?>> accessControls)
     {
         CompoundTokenMapReference ref = _reference.get();
-        if(ref.getAccessControlList() != underlying)
+        if (ref.getAccessControlList() != accessControls)
         {
-            CompoundTokenMapReference oldRef;
-            do
-            {
-                oldRef = ref;
-                ref = new CompoundTokenMapReference(underlying);
-
-            } while(!_reference.compareAndSet(oldRef,ref));
+            CompoundTokenMapReference oldRef = ref;
+            ref = new CompoundTokenMapReference(accessControls);
             ref.init(_subject);
+            _reference.compareAndSet(oldRef, ref);
         }
         return ref.getCompoundTokenMap();
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to