You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2013/08/19 14:42:35 UTC

svn commit: r1515389 - /felix/trunk/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java

Author: fmeschbe
Date: Mon Aug 19 12:42:35 2013
New Revision: 1515389

URL: http://svn.apache.org/r1515389
Log:
FELIX-4196 Check existing request URL prefix before replacing it with "https"

Modified:
    felix/trunk/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java

Modified: felix/trunk/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java?rev=1515389&r1=1515388&r2=1515389&view=diff
==============================================================================
--- felix/trunk/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java (original)
+++ felix/trunk/http/sslfilter/src/main/java/org/apache/felix/http/sslfilter/internal/SslFilterRequest.java Mon Aug 19 12:42:35 2013
@@ -21,21 +21,25 @@ package org.apache.felix.http.sslfilter.
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 
-public class SslFilterRequest extends HttpServletRequestWrapper
+class SslFilterRequest extends HttpServletRequestWrapper
 {
 
+    // The HTTPS scheme name
+    private static final String HTTPS_SCHEME = "https";
+
+    // The HTTP scheme prefix in an URL
+    private static final String HTTP_SCHEME_PREFIX = "http://";
+
     private String requestURL;
 
-    public SslFilterRequest(HttpServletRequest request)
+    SslFilterRequest(HttpServletRequest request)
     {
         super(request);
-
-        // TODO: check request headers for SSL attribute information
     }
 
     public String getScheme()
     {
-        return "https";
+        return HTTPS_SCHEME;
     }
 
     public boolean isSecure()
@@ -45,11 +49,17 @@ public class SslFilterRequest extends Ht
 
     public StringBuffer getRequestURL()
     {
-        if (this.requestURL == null) {
-            // insert an 's' after the http scheme
+        if (this.requestURL == null)
+        {
             StringBuffer tmp = super.getRequestURL();
-            tmp.insert(4, 's');
-            this.requestURL = tmp.toString();
+            if (tmp.indexOf(HTTP_SCHEME_PREFIX) == 0)
+            {
+                this.requestURL = HTTPS_SCHEME.concat(tmp.substring(4));
+            }
+            else
+            {
+                this.requestURL = tmp.toString();
+            }
         }
 
         return new StringBuffer(this.requestURL);