Author: kwall
Date: Tue Sep 11 22:19:15 2012
New Revision: 1383639

URL: http://svn.apache.org/viewvc?rev=1383639&view=rev
Log:
QPID-4297: Broker should not rely on Subject.getPrincipals.iterator().next() to 
find 'username principal'

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java?rev=1383639&r1=1383638&r2=1383639&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
 Tue Sep 11 22:19:15 2012
@@ -55,6 +55,7 @@ import org.apache.qpid.server.queue.AMQQ
 import org.apache.qpid.server.queue.QueueEntry;
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.security.SecurityManager;
+import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.txn.LocalTransaction;
 import org.apache.qpid.server.txn.ServerTransaction;
@@ -328,11 +329,10 @@ final class VirtualHostAdapter extends A
         String owner = null;
         if(exclusive)
         {
-            Set<Principal> principals =
-                    SecurityManager.getThreadSubject().getPrincipals();
-            if(principals != null && !principals.isEmpty())
+            Principal authenticatedPrincipal = 
AuthenticatedPrincipal.getOptionalAuthenticatedPrincipalFromSubject(SecurityManager.getThreadSubject());
+            if(authenticatedPrincipal != null)
             {
-                owner = principals.iterator().next().getName();
+                owner = authenticatedPrincipal.getName();
             }
         }
         try

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java?rev=1383639&r1=1383638&r2=1383639&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
 Tue Sep 11 22:19:15 2012
@@ -29,7 +29,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CopyOnWriteArraySet;
@@ -1006,7 +1005,7 @@ public class AMQProtocolEngine implement
 
     public Principal getAuthorizedPrincipal()
     {
-        return _authorizedSubject == null ? null : 
_authorizedSubject.getPrincipals(AuthenticatedPrincipal.class).iterator().next();
+        return _authorizedSubject == null ? null : 
AuthenticatedPrincipal.getAuthenticatedPrincipalFromSubject(_authorizedSubject);
     }
 
     public SocketAddress getRemoteAddress()

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java?rev=1383639&r1=1383638&r2=1383639&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
 Tue Sep 11 22:19:15 2012
@@ -25,7 +25,6 @@ import java.security.Principal;
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.UUID;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import javax.security.auth.Subject;
@@ -39,6 +38,7 @@ import org.apache.qpid.server.logging.me
 import org.apache.qpid.server.protocol.AMQConnectionModel;
 import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.security.AuthorizationHolder;
+import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
 import org.apache.qpid.server.stats.StatisticsCounter;
 import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.transport.Connection;
@@ -385,7 +385,7 @@ public class ServerConnection extends Co
         else
         {
             _authorizedSubject = authorizedSubject;
-            _authorizedPrincipal = 
authorizedSubject.getPrincipals().iterator().next();
+            _authorizedPrincipal = 
AuthenticatedPrincipal.getAuthenticatedPrincipalFromSubject(authorizedSubject);
         }
     }
 



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

Reply via email to