This is an automated email from the ASF dual-hosted git repository.

robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git

commit 631f523ee29949084961d7a128b0d4034786504f
Author: Robert Lazarski <[email protected]>
AuthorDate: Mon Apr 20 10:44:19 2026 -1000

    AXIS2-5762 Add transport ports to MessageContext
    
    Add TRANSPORT_LOCAL_PORT and TRANSPORT_REMOTE_PORT constants to
    MessageContext. AxisServlet now populates both from the servlet
    request at message ingress (request.getLocalPort() and
    request.getRemotePort()).
    
    Service code can access them via:
      Integer localPort = (Integer) msgContext.getProperty(
          MessageContext.TRANSPORT_LOCAL_PORT);
      Integer remotePort = (Integer) msgContext.getProperty(
          MessageContext.TRANSPORT_REMOTE_PORT);
---
 .../src/org/apache/axis2/context/MessageContext.java       | 14 ++++++++++++++
 .../java/org/apache/axis2/transport/http/AxisServlet.java  |  3 +++
 2 files changed, 17 insertions(+)

diff --git a/modules/kernel/src/org/apache/axis2/context/MessageContext.java 
b/modules/kernel/src/org/apache/axis2/context/MessageContext.java
index e03368de48..0caabc03a5 100644
--- a/modules/kernel/src/org/apache/axis2/context/MessageContext.java
+++ b/modules/kernel/src/org/apache/axis2/context/MessageContext.java
@@ -235,6 +235,20 @@ public class MessageContext extends AbstractContext
      */
     public static final String TRANSPORT_SUCCEED = "TRANSPORT_SUCCEED";
 
+    /**
+     * AXIS2-5762: Local port on which the request was received.
+     * Set by the transport listener (e.g., AxisServlet) at request ingress.
+     * Value type: {@code Integer}.
+     */
+    public static final String TRANSPORT_LOCAL_PORT = "TRANSPORT_LOCAL_PORT";
+
+    /**
+     * AXIS2-5762: Remote port of the client that sent the request.
+     * Set by the transport listener (e.g., AxisServlet) at request ingress.
+     * Value type: {@code Integer}.
+     */
+    public static final String TRANSPORT_REMOTE_PORT = "TRANSPORT_REMOTE_PORT";
+
     /**
      * Field DEFAULT_CHAR_SET_ENCODING. This is the default value for
      * CHARACTER_SET_ENCODING property.
diff --git 
a/modules/transport/http/src/main/java/org/apache/axis2/transport/http/AxisServlet.java
 
b/modules/transport/http/src/main/java/org/apache/axis2/transport/http/AxisServlet.java
index 8fc6ebef78..61f84ae89b 100644
--- 
a/modules/transport/http/src/main/java/org/apache/axis2/transport/http/AxisServlet.java
+++ 
b/modules/transport/http/src/main/java/org/apache/axis2/transport/http/AxisServlet.java
@@ -809,6 +809,9 @@ public class AxisServlet extends HttpServlet {
         msgContext.setTo(new EndpointReference(requestURI));
         msgContext.setFrom(new EndpointReference(request.getRemoteAddr()));
         msgContext.setProperty(MessageContext.REMOTE_ADDR, 
request.getRemoteAddr());
+        // AXIS2-5762: Expose transport ports on the MessageContext
+        msgContext.setProperty(MessageContext.TRANSPORT_LOCAL_PORT, 
request.getLocalPort());
+        msgContext.setProperty(MessageContext.TRANSPORT_REMOTE_PORT, 
request.getRemotePort());
         msgContext.setProperty(Constants.OUT_TRANSPORT_INFO,
                 new ServletBasedOutTransportInfo(response));
         // set the transport Headers

Reply via email to