You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2021/06/13 23:04:23 UTC
[qpid-broker-j] branch 8.0.x updated: QPID-8483: [Broker-J] Report
peer session name as part of 0-10 session subject
This is an automated email from the ASF dual-hosted git repository.
orudyy pushed a commit to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
The following commit(s) were added to refs/heads/8.0.x by this push:
new 2b1a714 QPID-8483: [Broker-J] Report peer session name as part of 0-10 session subject
2b1a714 is described below
commit 2b1a714caef3bcbf1492962cb298c4ca3372082d
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Wed Dec 2 23:46:32 2020 +0000
QPID-8483: [Broker-J] Report peer session name as part of 0-10 session subject
---
.../qpid/server/logging/AbstractMessageLogger.java | 15 +--------------
.../server/logging/subjects/ChannelLogSubject.java | 14 ++------------
.../qpid/server/session/AbstractAMQPSession.java | 10 +++++++---
.../logging/subjects/ChannelLogSubjectTest.java | 12 +-----------
.../qpid/server/protocol/v0_10/ServerSession.java | 17 +----------------
.../qpid/server/protocol/v0_10/Session_0_10.java | 12 +++++++-----
.../qpid/server/protocol/v0_8/AMQChannel.java | 2 +-
.../qpid/server/protocol/v1_0/Session_1_0.java | 21 +++------------------
8 files changed, 23 insertions(+), 80 deletions(-)
diff --git a/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java b/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java
index 215883c..e511920 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java
@@ -21,7 +21,6 @@
package org.apache.qpid.server.logging;
-import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CONNECTION_FORMAT;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.SOCKET_FORMAT;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.USER_FORMAT;
@@ -219,19 +218,7 @@ public abstract class AbstractMessageLogger implements MessageLogger
private static String generateSessionActor(final AMQPSession session)
{
- AMQPConnection<?> connection = session.getAMQPConnection();
- return "[" + MessageFormat.format(CHANNEL_FORMAT, connection == null ? -1L : connection.getConnectionId(),
- (connection == null || connection.getAuthorizedPrincipal() == null)
- ? "?"
- : connection.getAuthorizedPrincipal().getName(),
- (connection == null || connection.getRemoteAddressString() == null)
- ? "?"
- : connection.getRemoteAddressString(),
- (connection == null || connection.getAddressSpaceName() == null)
- ? "?"
- : connection.getAddressSpaceName(),
- session.getChannelId())
- + "] ";
+ return session.getLogSubject().toLogString();
}
private static <P extends Principal> P getPrincipal(Subject subject, Class<P> clazz)
diff --git a/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java b/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java
index f0d1369..c41ae7d 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java
@@ -1,5 +1,4 @@
/*
- *
* 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
@@ -22,19 +21,11 @@ package org.apache.qpid.server.logging.subjects;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT;
-import org.apache.qpid.server.session.AMQPSession;
import org.apache.qpid.server.transport.AMQPConnection;
public class ChannelLogSubject extends AbstractLogSubject
{
- private final AMQPSession<?,?> _sessionModel;
- public ChannelLogSubject(AMQPSession<?,?> session)
- {
- _sessionModel = session;
- updateSessionDetails();
- }
-
- public void updateSessionDetails()
+ public ChannelLogSubject(AMQPConnection connection, Object channelId)
{
/**
* LOG FORMAT used by the AMQPConnectorActor follows
@@ -49,12 +40,11 @@ public class ChannelLogSubject extends AbstractLogSubject
* 3 - Virtualhost
* 4 - Channel ID
*/
- AMQPConnection connection = _sessionModel.getAMQPConnection();
setLogStringWithFormat(CHANNEL_FORMAT,
connection == null ? -1L : connection.getConnectionId(),
(connection == null || connection.getAuthorizedPrincipal() == null) ? "?" : connection.getAuthorizedPrincipal().getName(),
(connection == null || connection.getRemoteAddressString() == null) ? "?" : connection.getRemoteAddressString(),
(connection == null || connection.getAddressSpaceName() == null) ? "?" : connection.getAddressSpaceName(),
- _sessionModel.getChannelId());
+ channelId);
}
}
diff --git a/broker-core/src/main/java/org/apache/qpid/server/session/AbstractAMQPSession.java b/broker-core/src/main/java/org/apache/qpid/server/session/AbstractAMQPSession.java
index b697d16..05dd46e 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/session/AbstractAMQPSession.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/session/AbstractAMQPSession.java
@@ -79,12 +79,11 @@ public abstract class AbstractAMQPSession<S extends AbstractAMQPSession<S, X>,
protected final SecurityToken _token;
protected final PublishAuthorisationCache _publishAuthCache;
- protected final LogSubject _logSubject;
-
protected final List<Action<? super S>> _taskList = new CopyOnWriteArrayList<>();
private final AtomicInteger _consumerCount = new AtomicInteger();
protected final Set<AbstractConsumerTarget> _consumersWithPendingWork = new ScheduledConsumerTargetSet<>();
+ private final LogSubject _logSubject;
private Iterator<AbstractConsumerTarget> _processPendingIterator;
private final Set<Consumer<?,X>> _consumers = ConcurrentHashMap.newKeySet();
@@ -97,6 +96,11 @@ public abstract class AbstractAMQPSession<S extends AbstractAMQPSession<S, X>,
protected AbstractAMQPSession(final Connection<?> parent, final int sessionId)
{
+ this(parent, sessionId, new ChannelLogSubject((AMQPConnection) parent, sessionId));
+ }
+
+ protected AbstractAMQPSession(final Connection<?> parent, final int sessionId, final LogSubject logSubject)
+ {
super(parent, createAttributes(sessionId));
_connection = (AMQPConnection) parent;
_sessionId = sessionId;
@@ -130,7 +134,7 @@ public abstract class AbstractAMQPSession<S extends AbstractAMQPSession<S, X>,
final long authCacheTimeout = _connection.getContextValue(Long.class, Session.PRODUCER_AUTH_CACHE_TIMEOUT);
final int authCacheSize = _connection.getContextValue(Integer.class, Session.PRODUCER_AUTH_CACHE_SIZE);
_publishAuthCache = new PublishAuthorisationCache(_token, authCacheTimeout, authCacheSize);
- _logSubject = new ChannelLogSubject(this);
+ _logSubject = logSubject;
setState(State.ACTIVE);
}
diff --git a/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java b/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java
index cf98bde..8a2c479 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java
@@ -1,5 +1,4 @@
/*
- *
* 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
@@ -20,13 +19,8 @@
*/
package org.apache.qpid.server.logging.subjects;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
import org.junit.Assert;
-import org.apache.qpid.server.session.AMQPSession;
-
/**
* Validate ChannelLogSubjects are logged as expected
*/
@@ -38,11 +32,7 @@ public class ChannelLogSubjectTest extends ConnectionLogSubjectTest
public void setUp() throws Exception
{
super.setUp();
-
- AMQPSession<?,?> session = mock(AMQPSession.class);
- when(session.getAMQPConnection()).thenReturn(getConnection());
- when(session.getChannelId()).thenReturn(_channelID);
- _subject = new ChannelLogSubject(session);
+ _subject = new ChannelLogSubject(getConnection(), _channelID);
}
/**
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
index 6846356..5d7c301 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
@@ -20,7 +20,6 @@
*/
package org.apache.qpid.server.protocol.v0_10;
-import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT;
import static org.apache.qpid.server.protocol.v0_10.ServerSession.State.CLOSED;
import static org.apache.qpid.server.protocol.v0_10.ServerSession.State.CLOSING;
import static org.apache.qpid.server.protocol.v0_10.ServerSession.State.DETACHED;
@@ -41,7 +40,6 @@ import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.Principal;
import java.security.PrivilegedAction;
-import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -1521,20 +1519,7 @@ public class ServerSession extends SessionInvoker
@Override
public String toLogString()
{
- long connectionId = getConnection() instanceof ServerConnection
- ? getConnection().getConnectionId()
- : -1;
- String authorizedPrincipal = (getAuthorizedPrincipal() == null) ? "?" : getAuthorizedPrincipal().getName();
-
- String remoteAddress = String.valueOf(getConnection().getRemoteSocketAddress());
- return "[" +
- MessageFormat.format(CHANNEL_FORMAT,
- connectionId,
- authorizedPrincipal,
- remoteAddress,
- getAddressSpace().getName(),
- getChannel())
- + "] ";
+ return _modelObject.toLogString();
}
public void close(int cause, String message)
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Session_0_10.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Session_0_10.java
index d8197be..9fb0dd0 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Session_0_10.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Session_0_10.java
@@ -26,6 +26,7 @@ import java.util.List;
import javax.security.auth.Subject;
import org.apache.qpid.server.logging.LogSubject;
+import org.apache.qpid.server.logging.subjects.ChannelLogSubject;
import org.apache.qpid.server.model.Connection;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.protocol.PublishAuthorisationCache;
@@ -33,17 +34,18 @@ import org.apache.qpid.server.session.AbstractAMQPSession;
import org.apache.qpid.server.util.Action;
public class Session_0_10 extends AbstractAMQPSession<Session_0_10, ConsumerTarget_0_10>
- implements LogSubject, org.apache.qpid.server.util.Deletable<Session_0_10> ,Session<Session_0_10>
+ implements LogSubject, org.apache.qpid.server.util.Deletable<Session_0_10> , Session<Session_0_10>
{
private final AMQPConnection_0_10 _connection;
private final ServerSession _serverSession;
- private String _peerSessionName;
+ private final String _peerSessionName;
protected Session_0_10(final Connection<?> parent,
final int sessionId,
- final ServerSession serverSession, final String peerSessionName)
+ final ServerSession serverSession,
+ final String peerSessionName)
{
- super(parent, sessionId);
+ super(parent, sessionId, new ChannelLogSubject((AMQPConnection_0_10) parent, String.format("%d:%s", sessionId, peerSessionName)));
_peerSessionName = peerSessionName;
_connection = (AMQPConnection_0_10) parent;
_serverSession = serverSession;
@@ -52,7 +54,7 @@ public class Session_0_10 extends AbstractAMQPSession<Session_0_10, ConsumerTarg
@Override
public String toLogString()
{
- return _serverSession.toLogString();
+ return getLogSubject().toLogString();
}
@Override
diff --git a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
index 6f006b8..d526663 100644
--- a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
+++ b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
@@ -799,7 +799,7 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
private void messageWithSubject(final LogMessage operationalLogMessage)
{
- getEventLogger().message(_logSubject, operationalLogMessage);
+ getEventLogger().message(getLogSubject(), operationalLogMessage);
}
private void unsubscribeAllConsumers()
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
index 076dc43..d3abefc 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
@@ -20,13 +20,10 @@
*/
package org.apache.qpid.server.protocol.v1_0;
-import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT;
-
import java.security.AccessControlContext;
import java.security.AccessControlException;
import java.security.AccessController;
import java.security.PrivilegedAction;
-import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -106,7 +103,6 @@ import org.apache.qpid.server.queue.CreatingLinkInfo;
import org.apache.qpid.server.queue.CreatingLinkInfoImpl;
import org.apache.qpid.server.security.SecurityToken;
import org.apache.qpid.server.session.AbstractAMQPSession;
-import org.apache.qpid.server.transport.AMQPConnection;
import org.apache.qpid.server.txn.ServerTransaction;
import org.apache.qpid.server.util.Action;
import org.apache.qpid.server.util.ConnectionScopedRuntimeException;
@@ -1009,7 +1005,7 @@ public class Session_1_0 extends AbstractAMQPSession<Session_1_0, ConsumerTarget
{
task.performAction(this);
}
- getAMQPConnection().getEventLogger().message(_logSubject,ChannelMessages.CLOSE());
+ getAMQPConnection().getEventLogger().message(getLogSubject(), ChannelMessages.CLOSE());
}
}
@@ -1153,7 +1149,7 @@ public class Session_1_0 extends AbstractAMQPSession<Session_1_0, ConsumerTarget
private void messageWithSubject(final LogMessage operationalLogMessage)
{
- getEventLogger().message(_logSubject, operationalLogMessage);
+ getEventLogger().message(getLogSubject(), operationalLogMessage);
}
@Override
@@ -1171,18 +1167,7 @@ public class Session_1_0 extends AbstractAMQPSession<Session_1_0, ConsumerTarget
@Override
public String toLogString()
{
- final AMQPConnection<?> amqpConnection = getAMQPConnection();
- long connectionId = amqpConnection.getConnectionId();
-
- String remoteAddress = amqpConnection.getRemoteAddressString();
- final String authorizedPrincipal = amqpConnection.getAuthorizedPrincipal() == null ? "?" : amqpConnection.getAuthorizedPrincipal().getName();
- return "[" +
- MessageFormat.format(CHANNEL_FORMAT,
- connectionId,
- authorizedPrincipal,
- remoteAddress,
- getAddressSpace().getName(),
- _sendingChannel) + "] ";
+ return getLogSubject().toLogString();
}
public AMQPConnection_1_0<?> getConnection()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org