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 | 238d56ccc06988fa1ad766116a5ad326dc2a980b (patch) | |
| tree | d52ef0549fc03313dfb61d6ba3c6cb99999d086c /java/broker | |
| parent | 3a486fea7053fad5b6c7239f14da94c209d92c63 (diff) | |
| download | qpid-python-238d56ccc06988fa1ad766116a5ad326dc2a980b.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/qpid@1152484 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 4b8b13fc7f..52d39978f3 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/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()); + } } |
