summaryrefslogtreecommitdiff
path: root/java/broker
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2011-07-30 15:00:54 +0000
committerRobert Gemmell <robbie@apache.org>2011-07-30 15:00:54 +0000
commit238d56ccc06988fa1ad766116a5ad326dc2a980b (patch)
treed52ef0549fc03313dfb61d6ba3c6cb99999d086c /java/broker
parent3a486fea7053fad5b6c7239f14da94c209d92c63 (diff)
downloadqpid-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.java12
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());
+ }
}