diff options
| author | Robert Gemmell <robbie@apache.org> | 2011-07-30 15:00:54 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2011-07-30 15:00:54 +0000 |
| commit | 48bdbb81d6f9f45c5061ddaa58c3877de0b21a68 (patch) | |
| tree | 0e6b26911169ec9a4dddb3a1a3d07dcf3ecf7020 /qpid/java | |
| parent | 66b5fa7d08b1ac88e41a2bb00ead51338c22b96e (diff) | |
| download | qpid-python-48bdbb81d6f9f45c5061ddaa58c3877de0b21a68.tar.gz | |
QPID-3339: set the security Subject during the closed() invocation to prevent the spurious ACL denies causing occasional test failures from ExternalACLTest under the Java 0.10 profiles
Applied patch from Keith Wall<keith.wall@gmail.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1152484 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 4b8b13fc7f..52d39978f3 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java @@ -106,8 +106,7 @@ public class ServerSessionDelegate extends SessionDelegate @Override public void command(Session session, Method method) { - final ServerConnection scon = (ServerConnection) session.getConnection(); - SecurityManager.setThreadSubject(scon.getAuthorizedSubject()); + setThreadSubject(session); if(!session.isClosing()) { @@ -125,8 +124,6 @@ public class ServerSessionDelegate extends SessionDelegate ((ServerSession)session).accept(method.getTransfers()); } - - @Override public void messageReject(Session session, MessageReject method) { @@ -1225,6 +1222,8 @@ public class ServerSessionDelegate extends SessionDelegate @Override public void closed(Session session) { + setThreadSubject(session); + for(Subscription_0_10 sub : getSubscriptions(session)) { ((ServerSession)session).unregister(sub); @@ -1243,4 +1242,9 @@ public class ServerSessionDelegate extends SessionDelegate return ((ServerSession)session).getSubscriptions(); } + private void setThreadSubject(Session session) + { + final ServerConnection scon = (ServerConnection) session.getConnection(); + SecurityManager.setThreadSubject(scon.getAuthorizedSubject()); + } } |
