This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit fd152559c7899d380b5eb18d988a61e96c1cad83 Author: Benoit TELLIER <btell...@linagora.com> AuthorDate: Thu Nov 21 10:44:16 2024 +0100 JAMES-4091 Add userAgent to IMAP channel description --- .../main/java/org/apache/james/imap/processor/IdProcessor.java | 1 + .../main/java/org/apache/james/imapserver/netty/IMAPServer.java | 8 ++++++-- .../integration/memory/MemoryWebAdminServerIntegrationTest.java | 8 +++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdProcessor.java index 07a38e02ca..d0599b70c6 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdProcessor.java @@ -67,6 +67,7 @@ public class IdProcessor extends AbstractMailboxProcessor<IDRequest> implements String mailUserAgent = request.getParameters().map(Object::toString).orElse("NIL"); addMailUserAgentToMDC(session, mailUserAgent); + session.setAttribute("userAgent", mailUserAgent); return logMailUserAgent(mailUserAgent) .then(unsolicitedResponses(session, responder, false)) diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java index a9bac1194a..f1d8853e2d 100644 --- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java +++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java @@ -22,7 +22,9 @@ import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.SocketAddress; import java.net.URISyntaxException; +import java.time.Clock; import java.time.Duration; +import java.time.Instant; import java.util.LinkedHashMap; import java.util.Optional; import java.util.Set; @@ -67,7 +69,6 @@ import com.google.common.collect.ImmutableSet; import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelPipeline; import io.netty.channel.group.DefaultChannelGroup; @@ -389,7 +390,10 @@ public class IMAPServer extends AbstractConfigurableAsyncServer implements ImapC .orElse(""), "isIdling", Boolean.toString(imapSession.flatMap(session -> Optional.ofNullable(session.getSelected())) .map(SelectedMailbox::isIdling) - .orElse(false)))); + .orElse(false)), + "userAgent", imapSession.flatMap(s -> Optional.ofNullable(s.getAttribute("userAgent"))) + .map(Object::toString) + .orElse(""))); }); } diff --git a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java index 3c7821de06..caf94d403e 100644 --- a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java @@ -61,8 +61,9 @@ class MemoryWebAdminServerIntegrationTest extends WebAdminServerIntegrationTest server.getProbe(DataProbeImpl.class).addUser(USERNAME, PASSWORD); - testIMAPClient.connect(LOCALHOST_IP, imapPort) - .login(USERNAME, PASSWORD) + testIMAPClient.connect(LOCALHOST_IP, imapPort); + testIMAPClient.sendCommand("ID (\"name\" \"Thunderbird\" \"version\" \"102.7.1\")"); + testIMAPClient.login(USERNAME, PASSWORD) .select("INBOX"); when() @@ -74,6 +75,7 @@ class MemoryWebAdminServerIntegrationTest extends WebAdminServerIntegrationTest .body("[0].endpoint", is("imapserver")) .body("[0].username", is("bob@domain")) .body("[0].isEncrypted", is(false)) - .body("[0].isEncrypted", is(false)); + .body("[0].isEncrypted", is(false)) + .body("[0].protocolSpecificInformation.userAgent", is("{name=Thunderbird, version=102.7.1}")); } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org