diff --git a/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java b/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java
index d0c2289..75d8ac5 100644
--- a/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java
+++ b/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java
@@ -19,6 +19,7 @@
 package org.apache.felix.http.sslfilter.internal;
 
 import static org.apache.felix.http.sslfilter.internal.SslFilterConstants.ATTR_SSL_CERTIFICATE;
+import static org.apache.felix.http.sslfilter.internal.SslFilterConstants.HDR_X_FORWARDED_PORT;
 import static org.apache.felix.http.sslfilter.internal.SslFilterConstants.HTTPS;
 import static org.apache.felix.http.sslfilter.internal.SslFilterConstants.UTF_8;
 import static org.apache.felix.http.sslfilter.internal.SslFilterConstants.X_509;
@@ -100,4 +101,21 @@
         }
         return tmp;
     }
+    
+    public int getServerPort() 
+    {
+        int port;
+        
+        try
+        {            
+            String fwdPort = getHeader(HDR_X_FORWARDED_PORT);
+            port = Integer.valueOf(fwdPort);
+        }
+        catch (Exception e)
+        {
+            // Use default port for the used protocol...
+            port = -1;
+        }
+        return port;
+    }    
 }
diff --git a/http/sslfilter/src/test/java/org/apache/felix/http/sslfilter/internal/SslFilterRequestTest.java b/http/sslfilter/src/test/java/org/apache/felix/http/sslfilter/internal/SslFilterRequestTest.java
index c079a84..325b109 100644
--- a/http/sslfilter/src/test/java/org/apache/felix/http/sslfilter/internal/SslFilterRequestTest.java
+++ b/http/sslfilter/src/test/java/org/apache/felix/http/sslfilter/internal/SslFilterRequestTest.java
@@ -21,6 +21,7 @@
 import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
+import static org.apache.felix.http.sslfilter.internal.SslFilterConstants.HDR_X_FORWARDED_PORT;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -81,4 +82,33 @@
         assertEquals("https://some/page", sreq.getRequestURL().toString());
         assertEquals("https://some/page", req.getRequestURL().toString());
     }
+    
+    @Test
+    public void test_getServerPort() throws Exception
+    {
+        HttpServletRequest req = Mockito.mock(HttpServletRequest.class);
+        SslFilterRequest sreq = new SslFilterRequest(req, null);
+        
+        when(req.getHeader(HDR_X_FORWARDED_PORT)).thenReturn(null);        
+        assertEquals(-1, sreq.getServerPort());
+        
+        when(req.getHeader(HDR_X_FORWARDED_PORT)).thenReturn("");        
+        assertEquals(-1, sreq.getServerPort());
+        
+        when(req.getHeader(HDR_X_FORWARDED_PORT)).thenReturn("WRONG");        
+        assertEquals(-1, sreq.getServerPort());
+        
+        when(req.getHeader(HDR_X_FORWARDED_PORT)).thenReturn("W1");        
+        assertEquals(-1, sreq.getServerPort());
+        
+        when(req.getHeader(HDR_X_FORWARDED_PORT)).thenReturn("443");        
+        assertEquals(443, sreq.getServerPort());
+        
+        when(req.getHeader(HDR_X_FORWARDED_PORT)).thenReturn("80");        
+        assertEquals(80, sreq.getServerPort());
+        
+        when(req.getHeader(HDR_X_FORWARDED_PORT)).thenReturn("4502");        
+        assertEquals(4502, sreq.getServerPort());
+        
+    }
 }
