Author: dejanb Date: Fri Dec 18 11:12:32 2009 New Revision: 892220 URL: http://svn.apache.org/viewvc?rev=892220&view=rev Log: https://issues.apache.org/activemq/browse/AMQ-2508 - SecurityContext.isInOneOf() Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/SecurityContext.java Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/SecurityContext.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/SecurityContext.java?rev=892220&r1=892219&r2=892220&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/SecurityContext.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/SecurityContext.java Fri Dec 18 11:12:32 2009 @@ -18,6 +18,7 @@ import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -52,9 +53,17 @@ } public boolean isInOneOf(Set allowedPrincipals) { - HashSet set = new HashSet(getPrincipals()); - set.retainAll(allowedPrincipals); - return set.size() > 0; + Iterator allowedIter = allowedPrincipals.iterator(); + HashSet userPrincipals = new HashSet(getPrincipals()); + while (allowedIter.hasNext()) { + Iterator userIter = userPrincipals.iterator(); + Object allowedPrincipal = allowedIter.next(); + while (userIter.hasNext()) { + if (allowedPrincipal.equals(userIter.next())) + return true; + } + } + return false; } public abstract Set getPrincipals();