You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/02/19 22:44:20 UTC

svn commit: r1569934 [1/2] - in /qpid/trunk/qpid/java: broker-core/src/main/java/org/apache/qpid/server/configuration/updater/ broker-core/src/main/java/org/apache/qpid/server/connection/ broker-core/src/main/java/org/apache/qpid/server/model/adapter/ ...

Author: rgodfrey
Date: Wed Feb 19 21:44:19 2014
New Revision: 1569934

URL: http://svn.apache.org/r1569934
Log:
QPID-5567 : Always Use AccessControllerContext to find the current context Subject

Added:
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/SessionPrincipal.java
Modified:
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueFactory.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueue.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueue.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AccessControl.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticator.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/consumer/MockConsumer.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTestBase.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueThreadPoolTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/TestPrincipalUtils.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
    qpid/trunk/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java
    qpid/trunk/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ConnectionOpenMethodHandler.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/state/AMQStateManager.java
    qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
    qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java
    qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
    qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
    qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java Wed Feb 19 21:44:19 2014
@@ -21,6 +21,7 @@
 package org.apache.qpid.server.configuration.updater;
 
 import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 import java.util.List;
@@ -211,14 +212,12 @@ public class TaskExecutor
     private class CallableWrapper<T> implements Task<T>
     {
         private Task<T> _userTask;
-        private Subject _securityManagerSubject;
         private LogActor _actor;
         private Subject _contextSubject;
 
         public CallableWrapper(Task<T> userWork)
         {
             _userTask = userWork;
-            _securityManagerSubject = SecurityManager.getThreadSubject();
             _actor = CurrentActor.get();
             _contextSubject = Subject.getSubject(AccessController.getContext());
         }
@@ -226,35 +225,21 @@ public class TaskExecutor
         @Override
         public T call()
         {
-            SecurityManager.setThreadSubject(_securityManagerSubject);
             CurrentActor.set(_actor);
 
             try
             {
                 T result = null;
-                try
-                {
-                    result = Subject.doAs(_contextSubject, new PrivilegedExceptionAction<T>()
+                result = Subject.doAs(_contextSubject, new PrivilegedAction<T>()
                     {
                         @Override
-                        public T run() throws Exception
+                        public T run()
                         {
                             return executeTask(_userTask);
                         }
                     });
-                }
-                catch (PrivilegedActionException e)
-                {
-                    Exception underlying =  e.getException();
-                    if(underlying instanceof RuntimeException)
-                    {
-                        throw (RuntimeException)underlying;
-                    }
-                    else
-                    {
-                        throw new ServerScopedRuntimeException(e);
-                    }
-                }
+
+
                 return result;
             }
             finally
@@ -267,14 +252,6 @@ public class TaskExecutor
                 {
                     LOGGER.warn("Unexpected exception on current actor removal", e);
                 }
-                try
-                {
-                    SecurityManager.setThreadSubject(null);
-                }
-                catch (Exception e)
-                {
-                    LOGGER.warn("Unexpected exception on nullifying of subject for a security manager", e);
-                }
             }
         }
     }

Added: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java?rev=1569934&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java (added)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java Wed Feb 19 21:44:19 2014
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.connection;
+
+import org.apache.qpid.server.protocol.AMQConnectionModel;
+
+import java.security.Principal;
+
+public class ConnectionPrincipal implements Principal
+{
+    private final AMQConnectionModel _connection;
+
+    public ConnectionPrincipal(final AMQConnectionModel connection)
+    {
+        _connection = connection;
+    }
+
+    @Override
+    public String getName()
+    {
+        return _connection.getRemoteAddressString();
+    }
+
+    public AMQConnectionModel getConnection()
+    {
+        return _connection;
+    }
+
+    @Override
+    public boolean equals(final Object o)
+    {
+        if (this == o)
+        {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass())
+        {
+            return false;
+        }
+
+        final ConnectionPrincipal that = (ConnectionPrincipal) o;
+
+        if (!_connection.equals(that._connection))
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode()
+    {
+        return _connection.hashCode();
+    }
+}

Added: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/SessionPrincipal.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/SessionPrincipal.java?rev=1569934&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/SessionPrincipal.java (added)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/SessionPrincipal.java Wed Feb 19 21:44:19 2014
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.connection;
+
+import org.apache.qpid.server.protocol.AMQSessionModel;
+
+import java.security.Principal;
+
+public class SessionPrincipal implements Principal
+{
+    private final AMQSessionModel _session;
+
+    public SessionPrincipal(final AMQSessionModel session)
+    {
+        _session = session;
+    }
+
+    public AMQSessionModel getSession()
+    {
+        return _session;
+    }
+
+    @Override
+    public String getName()
+    {
+        return "session:"+_session.getId();
+    }
+
+    @Override
+    public boolean equals(final Object o)
+    {
+        if (this == o)
+        {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass())
+        {
+            return false;
+        }
+
+        final SessionPrincipal that = (SessionPrincipal) o;
+
+        if (!_session.equals(that._session))
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode()
+    {
+        return _session.hashCode();
+    }
+}

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java Wed Feb 19 21:44:19 2014
@@ -414,7 +414,7 @@ public final class VirtualHostAdapter ex
         try
         {
 
-            AMQQueue queue = _virtualHost.createQueue(null, attributes);
+            AMQQueue queue = _virtualHost.createQueue(attributes);
 
             synchronized (_queueAdapters)
             {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java Wed Feb 19 21:44:19 2014
@@ -27,6 +27,7 @@ import org.apache.qpid.server.model.Tran
 import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.util.Deletable;
 
+import java.net.SocketAddress;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -72,6 +73,8 @@ public interface AMQConnectionModel<T ex
 
     String getRemoteAddressString();
 
+    SocketAddress getRemoteAddress();
+
     String getClientId();
 
     String getClientVersion();

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java Wed Feb 19 21:44:19 2014
@@ -27,7 +27,6 @@ import java.util.UUID;
 import org.apache.qpid.server.exchange.AMQUnknownExchangeType;
 import org.apache.qpid.server.model.ExclusivityPolicy;
 import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.server.configuration.BrokerProperties;
 import org.apache.qpid.server.configuration.QueueConfiguration;
@@ -65,18 +64,17 @@ public class AMQQueueFactory implements 
     @Override
     public AMQQueue restoreQueue(Map<String, Object> attributes)
     {
-        return createOrRestoreQueue(null, attributes, false);
+        return createOrRestoreQueue(attributes, false);
 
     }
 
     @Override
-    public AMQQueue createQueue(final AMQSessionModel creatingSession,
-                                Map<String, Object> attributes)
+    public AMQQueue createQueue(Map<String, Object> attributes)
     {
-        return createOrRestoreQueue(creatingSession, attributes, true);
+        return createOrRestoreQueue(attributes, true);
     }
 
-    private AMQQueue createOrRestoreQueue(final AMQSessionModel creatingSession, Map<String, Object> attributes,
+    private AMQQueue createOrRestoreQueue(Map<String, Object> attributes,
                                           boolean createInStore)
     {
 
@@ -129,19 +127,19 @@ public class AMQQueueFactory implements 
 
         if(attributes.containsKey(Queue.SORT_KEY))
         {
-            queue = new SortedQueue(_virtualHost, creatingSession, attributes);
+            queue = new SortedQueue(_virtualHost, attributes);
         }
         else if(attributes.containsKey(Queue.LVQ_KEY))
         {
-            queue = new ConflationQueue(_virtualHost, creatingSession, attributes);
+            queue = new ConflationQueue(_virtualHost, attributes);
         }
         else if(attributes.containsKey(Queue.PRIORITIES))
         {
-            queue = new PriorityQueue(_virtualHost, creatingSession, attributes);
+            queue = new PriorityQueue(_virtualHost, attributes);
         }
         else
         {
-            queue = new StandardQueue(_virtualHost, creatingSession, attributes);
+            queue = new StandardQueue(_virtualHost, attributes);
         }
 
         //Register the new queue
@@ -232,7 +230,7 @@ public class AMQQueueFactory implements 
                     args.put(Queue.ID, UUIDGenerator.generateQueueUUID(dlQueueName, _virtualHost.getName()));
                     args.put(Queue.NAME, dlQueueName);
                     args.put(Queue.DURABLE, true);
-                    dlQueue = _virtualHost.createQueue(null, args);
+                    dlQueue = _virtualHost.createQueue(args);
                 }
                 catch (QueueExistsException e)
                 {
@@ -260,7 +258,7 @@ public class AMQQueueFactory implements 
 
         Map<String, Object> arguments = createQueueAttributesFromConfig(_virtualHost, config);
         
-        AMQQueue q = createOrRestoreQueue(null, arguments, false);
+        AMQQueue q = createOrRestoreQueue(arguments, false);
         return q;
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java Wed Feb 19 21:44:19 2014
@@ -34,9 +34,9 @@ public class ConflationQueue extends Sim
 
 
     protected ConflationQueue(VirtualHost virtualHost,
-                              final AMQSessionModel creatingSession, Map<String, Object> attributes)
+                              Map<String, Object> attributes)
     {
-        super(virtualHost, creatingSession, attributes, entryList(attributes));
+        super(virtualHost, attributes, entryList(attributes));
     }
 
     private static ConflationQueueList.Factory entryList(final Map<String, Object> attributes)

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java Wed Feb 19 21:44:19 2014
@@ -29,11 +29,10 @@ public abstract class OutOfOrderQueue<E 
 {
 
     protected OutOfOrderQueue(VirtualHost virtualHost,
-                              final AMQSessionModel creatingSession,
                               Map<String, Object> attributes,
                               QueueEntryListFactory<E, Q, L> entryListFactory)
     {
-        super(virtualHost, creatingSession, attributes, entryListFactory);
+        super(virtualHost, attributes, entryListFactory);
     }
 
     @Override

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java Wed Feb 19 21:44:19 2014
@@ -33,10 +33,9 @@ public class PriorityQueue extends OutOf
     public static final int DEFAULT_PRIORITY_LEVELS = 10;
 
     protected PriorityQueue(VirtualHost virtualHost,
-                            final AMQSessionModel creatingSession,
                             Map<String, Object> attributes)
     {
-        super(virtualHost, creatingSession, attributes, entryList(attributes));
+        super(virtualHost, attributes, entryList(attributes));
     }
 
     private static PriorityQueueList.Factory entryList(final Map<String, Object> attributes)

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueFactory.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueFactory.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueFactory.java Wed Feb 19 21:44:19 2014
@@ -26,8 +26,7 @@ import org.apache.qpid.server.protocol.A
 
 public interface QueueFactory
 {
-    AMQQueue createQueue(final AMQSessionModel creatingSession,
-                         Map<String, Object> arguments);
+    AMQQueue createQueue(Map<String, Object> arguments);
 
     AMQQueue restoreQueue(Map<String, Object> arguments);
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java Wed Feb 19 21:44:19 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.qpid.server.queue;
 
+import java.security.AccessControlContext;
+import java.security.AccessController;
 import java.security.Principal;
 import java.util.*;
 import java.util.concurrent.ConcurrentSkipListSet;
@@ -29,6 +31,7 @@ import java.util.concurrent.atomic.Atomi
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.log4j.Logger;
+import org.apache.qpid.server.connection.SessionPrincipal;
 import org.apache.qpid.server.model.ExclusivityPolicy;
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.protocol.AMQConnectionModel;
@@ -63,6 +66,8 @@ import org.apache.qpid.server.util.Serve
 import org.apache.qpid.server.util.StateChangeListener;
 import org.apache.qpid.server.virtualhost.VirtualHost;
 
+import javax.security.auth.Subject;
+
 abstract class SimpleAMQQueue<E extends QueueEntryImpl<E,Q,L>, Q extends SimpleAMQQueue<E, Q,L>, L extends SimpleQueueEntryList<E,Q,L>> implements AMQQueue<E, Q, QueueConsumer<?,E,Q,L>>,
                                        StateChangeListener<QueueConsumer<?,E,Q,L>, QueueConsumer.State>,
                                        MessageGroupManager.ConsumerResetHelper<E,Q,L>
@@ -184,7 +189,6 @@ abstract class SimpleAMQQueue<E extends 
     private final long[] _lastNotificationTimes = new long[NotificationCheck.values().length];
 
     protected SimpleAMQQueue(VirtualHost virtualHost,
-                             final AMQSessionModel<?,?> creatingSession,
                              Map<String, Object> attributes,
                              QueueEntryListFactory<E, Q, L> entryListFactory)
     {
@@ -201,25 +205,39 @@ abstract class SimpleAMQQueue<E extends 
                                                              Queue.LIFETIME_POLICY,
                                                              attributes,
                                                              LifetimePolicy.PERMANENT);
-        if(creatingSession != null)
+
+        Subject activeSubject = Subject.getSubject(AccessController.getContext());
+        Set<SessionPrincipal> sessionPrincipals = activeSubject == null ? Collections.<SessionPrincipal>emptySet() : activeSubject.getPrincipals(SessionPrincipal.class);
+        AMQSessionModel<?,?> sessionModel;
+        if(sessionPrincipals.isEmpty())
+        {
+            sessionModel = null;
+        }
+        else
+        {
+            final SessionPrincipal sessionPrincipal = sessionPrincipals.iterator().next();
+            sessionModel = sessionPrincipal.getSession();
+        }
+
+        if(sessionModel != null)
         {
 
             switch(_exclusivityPolicy)
             {
 
                 case PRINCIPAL:
-                    _exclusiveOwner = creatingSession.getConnectionModel().getAuthorizedPrincipal();
+                    _exclusiveOwner = sessionModel.getConnectionModel().getAuthorizedPrincipal();
                     break;
                 case CONTAINER:
-                    _exclusiveOwner = creatingSession.getConnectionModel().getRemoteContainerName();
+                    _exclusiveOwner = sessionModel.getConnectionModel().getRemoteContainerName();
                     break;
                 case CONNECTION:
-                    _exclusiveOwner = creatingSession.getConnectionModel();
-                    addExclusivityConstraint(creatingSession.getConnectionModel());
+                    _exclusiveOwner = sessionModel.getConnectionModel();
+                    addExclusivityConstraint(sessionModel.getConnectionModel());
                     break;
                 case SESSION:
-                    _exclusiveOwner = creatingSession;
-                    addExclusivityConstraint(creatingSession);
+                    _exclusiveOwner = sessionModel;
+                    addExclusivityConstraint(sessionModel);
                     break;
                 case NONE:
                 case LINK:
@@ -251,9 +269,9 @@ abstract class SimpleAMQQueue<E extends 
 
         if(_lifetimePolicy == LifetimePolicy.DELETE_ON_CONNECTION_CLOSE)
         {
-            if(creatingSession != null)
+            if(sessionModel != null)
             {
-                addLifetimeConstraint(creatingSession.getConnectionModel());
+                addLifetimeConstraint(sessionModel.getConnectionModel());
             }
             else
             {
@@ -264,9 +282,9 @@ abstract class SimpleAMQQueue<E extends 
         }
         else if(_lifetimePolicy == LifetimePolicy.DELETE_ON_SESSION_END)
         {
-            if(creatingSession != null)
+            if(sessionModel != null)
             {
-                addLifetimeConstraint(creatingSession);
+                addLifetimeConstraint(sessionModel);
             }
             else
             {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueue.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueue.java Wed Feb 19 21:44:19 2014
@@ -38,20 +38,19 @@ public class SortedQueue extends OutOfOr
     private final String _sortedPropertyName;
 
     protected SortedQueue(VirtualHost virtualHost,
-                          final AMQSessionModel creatingSession,
                           Map<String, Object> attributes,
                           QueueEntryListFactory<SortedQueueEntry, SortedQueue, SortedQueueEntryList> factory)
     {
-        super(virtualHost, creatingSession, attributes, factory);
+        super(virtualHost, attributes, factory);
         _sortedPropertyName = MapValueConverter.getStringAttribute(Queue.SORT_KEY,attributes);
     }
 
 
     protected SortedQueue(VirtualHost virtualHost,
-                          final AMQSessionModel creatingSession, Map<String, Object> attributes)
+                          Map<String, Object> attributes)
     {
         this(virtualHost,
-             creatingSession, attributes,
+             attributes,
              new SortedQueueEntryListFactory(MapValueConverter.getStringAttribute(Queue.SORT_KEY, attributes)));
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueue.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueue.java Wed Feb 19 21:44:19 2014
@@ -28,8 +28,8 @@ import java.util.Map;
 public class StandardQueue extends SimpleAMQQueue<StandardQueueEntry,StandardQueue,StandardQueueEntryList>
 {
     public StandardQueue(final VirtualHost virtualHost,
-                         final AMQSessionModel creatingSession, final Map<String, Object> arguments)
+                         final Map<String, Object> arguments)
     {
-        super(virtualHost, creatingSession, arguments, new StandardQueueEntryList.Factory());
+        super(virtualHost, arguments, new StandardQueueEntryList.Factory());
     }
 }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AccessControl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AccessControl.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AccessControl.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AccessControl.java Wed Feb 19 21:44:19 2014
@@ -23,20 +23,20 @@ import org.apache.qpid.server.security.a
 import org.apache.qpid.server.security.access.Operation;
 
 /**
- * The two methods, {@link #access(ObjectType, Object)} and {@link #authorise(Operation, ObjectType, ObjectProperties)},
+ * The two methods, {@link #access(org.apache.qpid.server.security.access.ObjectType)} and {@link #authorise(Operation, ObjectType, ObjectProperties)},
  * return the {@link Result} of the security decision, which may be to {@link Result#ABSTAIN} if no decision is made.
  */
 public interface AccessControl
 {
 	/**
-	 * Default result for {@link #access(ObjectType, Object)} or {@link #authorise(Operation, ObjectType, ObjectProperties)}.
+	 * Default result for {@link #access(org.apache.qpid.server.security.access.ObjectType)} or {@link #authorise(Operation, ObjectType, ObjectProperties)}.
 	 */
 	Result getDefault();
 
     /**
      * Authorise access granted to an object instance.
      */
-    Result access(ObjectType objectType, Object instance);
+    Result access(ObjectType objectType);
 
     /**
      * Authorise an operation on an object defined by a set of properties.

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java Wed Feb 19 21:44:19 2014
@@ -54,7 +54,6 @@ import static org.apache.qpid.server.sec
 import static org.apache.qpid.server.security.access.Operation.UNBIND;
 import static org.apache.qpid.server.security.access.Operation.UPDATE;
 
-import javax.security.auth.Subject;
 import java.net.SocketAddress;
 import java.security.AccessControlException;
 import java.util.Collection;
@@ -68,9 +67,6 @@ public class SecurityManager implements 
 {
     private static final Logger _logger = Logger.getLogger(SecurityManager.class);
 
-    /** Container for the {@link java.security.Principal} that is using to this thread. */
-    private static final ThreadLocal<Subject> _subject = new ThreadLocal<Subject>();
-
     public static final ThreadLocal<Boolean> _accessChecksDisabled = new ClearingThreadLocal(false);
 
     private ConcurrentHashMap<String, AccessControl> _globalPlugins = new ConcurrentHashMap<String, AccessControl>();
@@ -189,16 +185,6 @@ public class SecurityManager implements 
         return accessControl.getClass().getName();
     }
 
-    public static Subject getThreadSubject()
-    {
-        return _subject.get();
-    }
-
-    public static void setThreadSubject(final Subject subject)
-    {
-        _subject.set(subject);
-    }
-
     public static Logger getLogger()
     {
         return _logger;
@@ -335,7 +321,7 @@ public class SecurityManager implements 
         {
             Result allowed(AccessControl plugin)
             {
-                return plugin.access(ObjectType.MANAGEMENT, null);
+                return plugin.access(ObjectType.MANAGEMENT);
             }
         }))
         {
@@ -343,13 +329,13 @@ public class SecurityManager implements 
         }
     }
 
-    public void accessVirtualhost(final String vhostname, final SocketAddress remoteAddress)
+    public void accessVirtualhost(final String vhostname)
     {
         if(!checkAllPlugins(new AccessCheck()
         {
             Result allowed(AccessControl plugin)
             {
-                return plugin.access(VIRTUALHOST, remoteAddress);
+                return plugin.access(VIRTUALHOST);
             }
         }))
         {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticator.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticator.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticator.java Wed Feb 19 21:44:19 2014
@@ -21,6 +21,7 @@
 package org.apache.qpid.server.security.auth.jmx;
 
 import java.net.SocketAddress;
+import java.security.PrivilegedAction;
 
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.security.SecurityManager;
@@ -117,15 +118,16 @@ public class JMXPasswordAuthenticator im
 
     private void doManagementAuthorisation(Subject authenticatedSubject)
     {
-        SecurityManager.setThreadSubject(authenticatedSubject);
-        try
+        Subject.doAs(authenticatedSubject, new PrivilegedAction<Object>()
         {
-            _broker.getSecurityManager().accessManagement();
-        }
-        finally
-        {
-            SecurityManager.setThreadSubject(null);
-        }
+            @Override
+            public Object run()
+            {
+                _broker.getSecurityManager().accessManagement();
+                return null;
+            }
+        });
+
     }
 
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Wed Feb 19 21:44:19 2014
@@ -536,7 +536,7 @@ public abstract class AbstractVirtualHos
         }
     }
 
-    public AMQQueue createQueue(final AMQSessionModel creatingSession, Map<String, Object> attributes) throws QueueExistsException
+    public AMQQueue createQueue(Map<String, Object> attributes) throws QueueExistsException
     {
         // make a copy as we may augment (with an ID for example)
         attributes = new LinkedHashMap<String, Object>(attributes);
@@ -585,7 +585,7 @@ public abstract class AbstractVirtualHos
             }
 
 
-            return _queueFactory.createQueue(creatingSession, attributes);
+            return _queueFactory.createQueue(attributes);
         }
 
     }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java Wed Feb 19 21:44:19 2014
@@ -59,7 +59,7 @@ public interface VirtualHost extends Dur
 
     int removeQueue(AMQQueue queue);
 
-    AMQQueue createQueue(final AMQSessionModel creatingSession, Map<String, Object> arguments) throws QueueExistsException;
+    AMQQueue createQueue(Map<String, Object> arguments) throws QueueExistsException;
 
 
     Exchange createExchange(UUID id,

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java Wed Feb 19 21:44:19 2014
@@ -20,6 +20,7 @@
  */
 package org.apache.qpid.server.configuration.updater;
 
+import java.security.AccessControlContext;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.concurrent.BlockingQueue;
@@ -216,27 +217,32 @@ public class TaskExecutorTest extends Te
         _executor.start();
         LogActor actor = new TestLogActor(new NullRootMessageLogger());
         Subject subject = new Subject();
-        Subject currentSecurityManagerSubject = SecurityManager.getThreadSubject();
         final AtomicReference<LogActor> taskLogActor = new AtomicReference<LogActor>();
         final AtomicReference<Subject> taskSubject = new AtomicReference<Subject>();
         try
         {
             CurrentActor.set(actor);
-            SecurityManager.setThreadSubject(subject);
-            _executor.submitAndWait(new TaskExecutor.Task<Object>()
+            Subject.doAs(subject, new PrivilegedAction<Object>()
             {
                 @Override
-                public Void call()
+                public Object run()
+                {        _executor.submitAndWait(new TaskExecutor.Task<Object>()
                 {
-                    taskLogActor.set(CurrentActor.get());
-                    taskSubject.set(SecurityManager.getThreadSubject());
+                    @Override
+                    public Void call()
+                    {
+                        taskLogActor.set(CurrentActor.get());
+                        taskSubject.set(Subject.getSubject(AccessController.getContext()));
+                        return null;
+                    }
+                });
                     return null;
                 }
             });
+
         }
         finally
         {
-            SecurityManager.setThreadSubject(currentSecurityManagerSubject);
             CurrentActor.remove();
         }
         assertEquals("Unexpected task log actor", actor, taskLogActor.get());

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/consumer/MockConsumer.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/consumer/MockConsumer.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/consumer/MockConsumer.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/consumer/MockConsumer.java Wed Feb 19 21:44:19 2014
@@ -38,6 +38,7 @@ import org.apache.qpid.server.stats.Stat
 import org.apache.qpid.server.util.Action;
 import org.apache.qpid.server.util.StateChangeListener;
 
+import java.net.SocketAddress;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.List;
@@ -456,6 +457,11 @@ public class MockConsumer implements Con
             return "remoteAddress:1234";
         }
 
+        public SocketAddress getRemoteAddress()
+        {
+            return null;
+        }
+
         @Override
         public String getClientId()
         {

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java Wed Feb 19 21:44:19 2014
@@ -80,7 +80,7 @@ public class TopicExchangeTest extends Q
         Map<String,Object> attributes = new HashMap<String, Object>();
         attributes.put(Queue.ID, UUIDGenerator.generateRandomUUID());
         attributes.put(Queue.NAME, name);
-        return _vhost.createQueue(null, attributes);
+        return _vhost.createQueue(attributes);
     }
 
     public void testNoRoute() throws Exception

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java Wed Feb 19 21:44:19 2014
@@ -43,7 +43,6 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.plugin.ExchangeType;
-import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
@@ -97,13 +96,13 @@ public class AMQQueueFactoryTest extends
 
         final ArgumentCaptor<Map> attributes = ArgumentCaptor.forClass(Map.class);
 
-        when(_virtualHost.createQueue(any(AMQSessionModel.class), attributes.capture())).then(
+        when(_virtualHost.createQueue(attributes.capture())).then(
                 new Answer<AMQQueue>()
                 {
                     @Override
                     public AMQQueue answer(InvocationOnMock invocation) throws Throwable
                     {
-                        return _queueFactory.createQueue(null, attributes.getValue());
+                        return _queueFactory.createQueue(attributes.getValue());
                     }
                 }
             );
@@ -206,7 +205,7 @@ public class AMQQueueFactoryTest extends
         attributes.put(Queue.PRIORITIES, 5);
 
 
-        AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        AMQQueue queue = _queueFactory.createQueue(attributes);
 
         assertEquals("Queue not a priority queue", PriorityQueue.class, queue.getClass());
         verifyQueueRegistered("testPriorityQueue");
@@ -224,7 +223,7 @@ public class AMQQueueFactoryTest extends
         attributes.put(Queue.NAME, queueName);
 
 
-        AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        AMQQueue queue = _queueFactory.createQueue(attributes);
         assertEquals("Queue not a simple queue", StandardQueue.class, queue.getClass());
         verifyQueueRegistered(queueName);
 
@@ -256,7 +255,7 @@ public class AMQQueueFactoryTest extends
         attributes.put(Queue.NAME, queueName);
         attributes.put(Queue.CREATE_DLQ_ON_CREATION, true);
 
-        AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        AMQQueue queue = _queueFactory.createQueue(attributes);
 
         Exchange altExchange = queue.getAlternateExchange();
         assertNotNull("Queue should have an alternate exchange as DLQ is enabled", altExchange);
@@ -297,7 +296,7 @@ public class AMQQueueFactoryTest extends
         attributes.put(Queue.ID, UUID.randomUUID());
         attributes.put(Queue.NAME, queueName);
 
-        AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        AMQQueue queue = _queueFactory.createQueue(attributes);
 
         assertEquals("Unexpected maximum delivery count", 5, queue.getMaximumDeliveryCount());
         Exchange altExchange = queue.getAlternateExchange();
@@ -338,7 +337,7 @@ public class AMQQueueFactoryTest extends
         attributes.put(Queue.NAME, queueName);
         attributes.put(Queue.CREATE_DLQ_ON_CREATION, false);
 
-        AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        AMQQueue queue = _queueFactory.createQueue(attributes);
 
         assertNull("Queue should not have an alternate exchange as DLQ is disabled", queue.getAlternateExchange());
         assertNull("The alternate exchange should still not exist", _virtualHost.getExchange(dlExchangeName));
@@ -372,7 +371,7 @@ public class AMQQueueFactoryTest extends
         attributes.put(Queue.LIFETIME_POLICY, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
 
         //create an autodelete queue
-        AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        AMQQueue queue = _queueFactory.createQueue(attributes);
         assertEquals("Queue should be autodelete",
                      LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS,
                      queue.getLifetimePolicy());
@@ -398,7 +397,7 @@ public class AMQQueueFactoryTest extends
 
         attributes.put(Queue.MAXIMUM_DELIVERY_ATTEMPTS, (Object) 5);
 
-        final AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        final AMQQueue queue = _queueFactory.createQueue(attributes);
 
         assertNotNull("The queue was not registered as expected ", queue);
         assertEquals("Maximum delivery count not as expected", 5, queue.getMaximumDeliveryCount());
@@ -416,7 +415,7 @@ public class AMQQueueFactoryTest extends
         attributes.put(Queue.ID, UUID.randomUUID());
         attributes.put(Queue.NAME, "testMaximumDeliveryCountDefault");
 
-        final AMQQueue queue = _queueFactory.createQueue(null, attributes);
+        final AMQQueue queue = _queueFactory.createQueue(attributes);
 
         assertNotNull("The queue was not registered as expected ", queue);
         assertEquals("Maximum delivery count not as expected", 0, queue.getMaximumDeliveryCount());
@@ -434,7 +433,7 @@ public class AMQQueueFactoryTest extends
             Map<String,Object> attributes = new HashMap<String, Object>();
             attributes.put(Queue.ID, UUID.randomUUID());
 
-            _queueFactory.createQueue(null, attributes);
+            _queueFactory.createQueue(attributes);
             fail("queue with null name can not be created!");
         }
         catch (Exception e)
@@ -463,7 +462,7 @@ public class AMQQueueFactoryTest extends
 
             attributes.put(Queue.CREATE_DLQ_ON_CREATION, true);
 
-            _queueFactory.createQueue(null, attributes);
+            _queueFactory.createQueue(attributes);
             fail("queue with DLQ name having more than 255 characters can not be created!");
         }
         catch (Exception e)
@@ -493,7 +492,7 @@ public class AMQQueueFactoryTest extends
 
             attributes.put(Queue.CREATE_DLQ_ON_CREATION, (Object) true);
 
-            _queueFactory.createQueue(null, attributes);
+            _queueFactory.createQueue(attributes);
             fail("queue with DLE name having more than 255 characters can not be created!");
         }
         catch (Exception e)

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java Wed Feb 19 21:44:19 2014
@@ -52,7 +52,7 @@ public class ConflationQueueListTest ext
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
         queueAttributes.put(Queue.LVQ_KEY, CONFLATION_KEY);
-        _queue = new ConflationQueue(mock(VirtualHost.class), null, queueAttributes);
+        _queue = new ConflationQueue(mock(VirtualHost.class), queueAttributes);
         _list = _queue.getEntries();
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java Wed Feb 19 21:44:19 2014
@@ -51,7 +51,7 @@ public class PriorityQueueListTest exten
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
         queueAttributes.put(Queue.PRIORITIES, 10);
-        PriorityQueue queue = new PriorityQueue(mock(VirtualHost.class), null, queueAttributes);
+        PriorityQueue queue = new PriorityQueue(mock(VirtualHost.class), queueAttributes);
         _list = queue.getEntries();
 
         for (int i = 0; i < PRIORITIES.length; i++)

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java Wed Feb 19 21:44:19 2014
@@ -204,7 +204,7 @@ public abstract class QueueEntryImplTest
         Map<String,Object> queueAttributes = new HashMap<String, Object>();
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
-        StandardQueue queue = new StandardQueue(mock(VirtualHost.class), null, queueAttributes);
+        StandardQueue queue = new StandardQueue(mock(VirtualHost.class), queueAttributes);
         OrderedQueueEntryList queueEntryList = queue.getEntries();
 
         // create test entries

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTestBase.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTestBase.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTestBase.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTestBase.java Wed Feb 19 21:44:19 2014
@@ -78,7 +78,7 @@ abstract class SimpleAMQQueueTestBase<E 
         attributes.put(Queue.NAME, _qname);
         attributes.put(Queue.OWNER, _owner);
 
-        _queue = (Q) _virtualHost.createQueue(null, attributes);
+        _queue = (Q) _virtualHost.createQueue(attributes);
 
         _exchange = (DirectExchange) _virtualHost.getExchange(ExchangeDefaults.DIRECT_EXCHANGE_NAME);
     }
@@ -106,7 +106,7 @@ abstract class SimpleAMQQueueTestBase<E 
             Map<String,Object> attributes = new HashMap<String, Object>(_arguments);
             attributes.put(Queue.ID, UUIDGenerator.generateRandomUUID());
 
-            _queue = (Q) _virtualHost.createQueue(null, attributes);
+            _queue = (Q) _virtualHost.createQueue(attributes);
             assertNull("Queue was created", _queue);
         }
         catch (IllegalArgumentException e)
@@ -118,7 +118,7 @@ abstract class SimpleAMQQueueTestBase<E 
         Map<String,Object> attributes = new HashMap<String, Object>(_arguments);
         attributes.put(Queue.ID, UUIDGenerator.generateRandomUUID());
         attributes.put(Queue.NAME, "differentName");
-        _queue = (Q) _virtualHost.createQueue(null, attributes);
+        _queue = (Q) _virtualHost.createQueue(attributes);
         assertNotNull("Queue was not created", _queue);
     }
 
@@ -1105,7 +1105,7 @@ abstract class SimpleAMQQueueTestBase<E 
     {
         public NonAsyncDeliverQueue(final TestSimpleQueueEntryListFactory factory, VirtualHost vhost)
         {
-            super(vhost, null, attributes(), factory);
+            super(vhost, attributes(), factory);
         }
 
         private static Map<String,Object> attributes()

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueThreadPoolTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueThreadPoolTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueThreadPoolTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueThreadPoolTest.java Wed Feb 19 21:44:19 2014
@@ -57,7 +57,7 @@ public class SimpleAMQQueueThreadPoolTes
             Map<String,Object> attributes = new HashMap<String, Object>();
             attributes.put(Queue.ID, UUIDGenerator.generateRandomUUID());
             attributes.put(Queue.NAME, "test");
-            AMQQueue queue = test.createQueue(null, attributes);
+            AMQQueue queue = test.createQueue(attributes);
 
             assertFalse("Creation did not start Pool.", ReferenceCountingExecutorService.getInstance().getPool().isShutdown());
 

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java Wed Feb 19 21:44:19 2014
@@ -44,7 +44,7 @@ public class SimpleQueueEntryImplTest ex
         Map<String,Object> queueAttributes = new HashMap<String, Object>();
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, "SimpleQueueEntryImplTest");
-        StandardQueue queue = new StandardQueue(mock(VirtualHost.class), null, queueAttributes);
+        StandardQueue queue = new StandardQueue(mock(VirtualHost.class), queueAttributes);
 
         queueEntryList = queue.getEntries();
 

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java Wed Feb 19 21:44:19 2014
@@ -86,7 +86,7 @@ public class SortedQueueEntryListTest ex
         attributes.put(Queue.SORT_KEY, "KEY");
 
         // Create test list
-        _testQueue = new SortedQueue(mock(VirtualHost.class), null, attributes, new QueueEntryListFactory<SortedQueueEntry,SortedQueue,SortedQueueEntryList>()
+        _testQueue = new SortedQueue(mock(VirtualHost.class), attributes, new QueueEntryListFactory<SortedQueueEntry,SortedQueue,SortedQueueEntryList>()
         {
 
             @Override

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java Wed Feb 19 21:44:19 2014
@@ -54,7 +54,7 @@ public class SortedQueueEntryTest extend
         attributes.put(Queue.LIFETIME_POLICY, LifetimePolicy.PERMANENT);
         attributes.put(Queue.SORT_KEY, "KEY");
 
-        SortedQueue queue = new SortedQueue(mock(VirtualHost.class), null, attributes, new QueueEntryListFactory<SortedQueueEntry,SortedQueue,SortedQueueEntryList>()
+        SortedQueue queue = new SortedQueue(mock(VirtualHost.class), attributes, new QueueEntryListFactory<SortedQueueEntry,SortedQueue,SortedQueueEntryList>()
         {
 
             @Override

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java Wed Feb 19 21:44:19 2014
@@ -50,7 +50,7 @@ public class StandardQueueEntryListTest 
         Map<String,Object> queueAttributes = new HashMap<String, Object>();
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
-        _testQueue = new StandardQueue(mock(VirtualHost.class), null, queueAttributes);
+        _testQueue = new StandardQueue(mock(VirtualHost.class), queueAttributes);
 
         _sqel = _testQueue.getEntries();
         for(int i = 1; i <= 100; i++)
@@ -93,7 +93,7 @@ public class StandardQueueEntryListTest 
             Map<String,Object> queueAttributes = new HashMap<String, Object>();
             queueAttributes.put(Queue.ID, UUID.randomUUID());
             queueAttributes.put(Queue.NAME, getName());
-            StandardQueue queue = new StandardQueue(mock(VirtualHost.class), null, queueAttributes);
+            StandardQueue queue = new StandardQueue(mock(VirtualHost.class), queueAttributes);
 
             return queue.getEntries();
         }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java Wed Feb 19 21:44:19 2014
@@ -52,7 +52,7 @@ public class StandardQueueTest extends S
             queueAttributes.put(Queue.NAME, "testActiveConsumerCount");
             queueAttributes.put(Queue.OWNER, "testOwner");
 
-            setQueue(new StandardQueue(null, null, queueAttributes));
+            setQueue(new StandardQueue(null, queueAttributes));
             assertNull("Queue was created", getQueue());
         }
         catch (IllegalArgumentException e)
@@ -70,7 +70,7 @@ public class StandardQueueTest extends S
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getQname());
         queueAttributes.put(Queue.LIFETIME_POLICY, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
-        final StandardQueue queue = new StandardQueue(getVirtualHost(), null, queueAttributes);
+        final StandardQueue queue = new StandardQueue(getVirtualHost(), queueAttributes);
 
         setQueue(queue);
 
@@ -93,7 +93,7 @@ public class StandardQueueTest extends S
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, "testActiveConsumerCount");
         queueAttributes.put(Queue.OWNER, "testOwner");
-        final StandardQueue queue = new StandardQueue(getVirtualHost(), null, queueAttributes);
+        final StandardQueue queue = new StandardQueue(getVirtualHost(), queueAttributes);
 
         //verify adding an active consumer increases the count
         final MockConsumer consumer1 = new MockConsumer();
@@ -200,7 +200,7 @@ public class StandardQueueTest extends S
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, "test");
         // create queue with overridden method deliverAsync
-        StandardQueue testQueue = new StandardQueue(getVirtualHost(), null, queueAttributes)
+        StandardQueue testQueue = new StandardQueue(getVirtualHost(), queueAttributes)
         {
             @Override
             public void deliverAsync(QueueConsumer sub)
@@ -269,7 +269,7 @@ public class StandardQueueTest extends S
 
         public DequeuedQueue(VirtualHost virtualHost)
         {
-            super(virtualHost, null, attributes(), new DequeuedQueueEntryListFactory());
+            super(virtualHost, attributes(), new DequeuedQueueEntryListFactory());
         }
 
         private static Map<String,Object> attributes()

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/TestPrincipalUtils.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/TestPrincipalUtils.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/TestPrincipalUtils.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/TestPrincipalUtils.java Wed Feb 19 21:44:19 2014
@@ -43,7 +43,7 @@ public class TestPrincipalUtils
             principals.add(new GroupPrincipal(group));
         }
 
-        return new Subject(true, principals, Collections.EMPTY_SET, Collections.EMPTY_SET);
+        return new Subject(false, principals, Collections.EMPTY_SET, Collections.EMPTY_SET);
     }
 
 }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java Wed Feb 19 21:44:19 2014
@@ -186,7 +186,7 @@ public class BrokerTestHelper
         Map<String,Object> attributes = new HashMap<String, Object>();
         attributes.put(Queue.ID, UUIDGenerator.generateRandomUUID());
         attributes.put(Queue.NAME, queueName);
-        AMQQueue queue = virtualHost.createQueue(null, attributes);
+        AMQQueue queue = virtualHost.createQueue(attributes);
         return queue;
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java Wed Feb 19 21:44:19 2014
@@ -29,7 +29,6 @@ import org.apache.qpid.server.exchange.E
 import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.plugin.ExchangeType;
-import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.protocol.LinkRegistry;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.QueueRegistry;
@@ -153,7 +152,7 @@ public class MockVirtualHost implements 
     }
 
     @Override
-    public AMQQueue createQueue(final AMQSessionModel creatingSession, Map<String, Object> arguments)
+    public AMQQueue createQueue(Map<String, Object> arguments)
     {
         return null;
     }

Modified: qpid/trunk/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java?rev=1569934&r1=1569933&r2=1569934&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java Wed Feb 19 21:44:19 2014
@@ -23,6 +23,9 @@ package org.apache.qpid.server.security.
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.io.File;
+import java.net.SocketAddress;
+import java.security.AccessController;
+import java.util.Set;
 
 import javax.security.auth.Subject;
 
@@ -30,8 +33,8 @@ import org.apache.commons.configuration.
 import org.apache.commons.lang.ObjectUtils;
 import org.apache.log4j.Logger;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.connection.ConnectionPrincipal;
 import org.apache.qpid.server.security.Result;
-import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.security.AccessControl;
 import org.apache.qpid.server.security.access.ObjectProperties;
 import org.apache.qpid.server.security.access.ObjectType;
@@ -115,15 +118,22 @@ public class DefaultAccessControl implem
 	 * Delegate to the {@link #authorise(Operation, ObjectType, ObjectProperties)} method, with
      * the operation set to ACCESS and no object properties.
 	 */
-    public Result access(ObjectType objectType, Object inetSocketAddress)
+    public Result access(ObjectType objectType)
     {
         InetAddress addressOfClient = null;
-
-        if(inetSocketAddress != null)
+        final Subject subject = Subject.getSubject(AccessController.getContext());
+        if(subject != null)
         {
-            addressOfClient = ((InetSocketAddress) inetSocketAddress).getAddress();
+            Set<ConnectionPrincipal> principals = subject.getPrincipals(ConnectionPrincipal.class);
+            if(!principals.isEmpty())
+            {
+                SocketAddress address = principals.iterator().next().getConnection().getRemoteAddress();
+                if(address instanceof InetSocketAddress)
+                {
+                    addressOfClient = ((InetSocketAddress) address).getAddress();
+                }
+            }
         }
-
         return authoriseFromAddress(Operation.ACCESS, objectType, ObjectProperties.EMPTY, addressOfClient);
     }
 
@@ -139,7 +149,7 @@ public class DefaultAccessControl implem
 
     public Result authoriseFromAddress(Operation operation, ObjectType objectType, ObjectProperties properties, InetAddress addressOfClient)
     {
-        final Subject subject = SecurityManager.getThreadSubject();
+        final Subject subject = Subject.getSubject(AccessController.getContext());
         // Abstain if there is no subject/principal associated with this thread
         if (subject == null  || subject.getPrincipals().size() == 0)
         {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org