diff options
author | Robert Gemmell <robbie@apache.org> | 2010-05-31 16:03:41 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2010-05-31 16:03:41 +0000 |
commit | 48e49bef0775e91625ba7b5c03823dbaca943bf7 (patch) | |
tree | f987246a0d61c3a23e5c52b9a233778d57e3fca4 /java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java | |
parent | a2d26b71f141f3166bdd0342b481723d98b0bb99 (diff) | |
download | qpid-python-48e49bef0775e91625ba7b5c03823dbaca943bf7.tar.gz |
QPID-2606: Access Control Modifications
Applied patch from Andrew Kennedy <andrew.international@gmail.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@949781 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java')
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java index 84444450c9..0e7459498a 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java @@ -20,18 +20,18 @@ */ package org.apache.qpid.server.exchange; +import java.util.Collection; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + import org.apache.log4j.Logger; import org.apache.qpid.AMQException; +import org.apache.qpid.AMQSecurityException; import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.server.exchange.ExchangeInitialiser; import org.apache.qpid.server.queue.IncomingMessage; import org.apache.qpid.server.store.DurableConfigurationStore; import org.apache.qpid.server.virtualhost.VirtualHost; -import java.util.Collection; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - public class DefaultExchangeRegistry implements ExchangeRegistry { private static final Logger _log = Logger.getLogger(DefaultExchangeRegistry.class); @@ -87,7 +87,14 @@ public class DefaultExchangeRegistry implements ExchangeRegistry public void unregisterExchange(AMQShortString name, boolean inUse) throws AMQException { + // Check access + if (!_host.getSecurityManager().authoriseDelete(_exchangeMap.get(name))) + { + throw new AMQSecurityException(); + } + // TODO: check inUse argument + Exchange e = _exchangeMap.remove(name); _exchangeMapStr.remove(name.toString()); if (e != null) |