Author: woonsan
Date: Mon Jan 25 20:53:32 2010
New Revision: 902970

URL: http://svn.apache.org/viewvc?rev=902970&view=rev
Log:
APA-30: Written cookie's secured property should comply with the secure mode of 
the current request channel. Also, keeps the version.

Modified:
    
portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/proxy/impl/RewritableHttpReverseProxyServiceImpl.java

Modified: 
portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/proxy/impl/RewritableHttpReverseProxyServiceImpl.java
URL: 
http://svn.apache.org/viewvc/portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/proxy/impl/RewritableHttpReverseProxyServiceImpl.java?rev=902970&r1=902969&r2=902970&view=diff
==============================================================================
--- 
portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/proxy/impl/RewritableHttpReverseProxyServiceImpl.java
 (original)
+++ 
portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/proxy/impl/RewritableHttpReverseProxyServiceImpl.java
 Mon Jan 25 20:53:32 2010
@@ -467,7 +467,7 @@
                 
                 if (!responseSetCookies.isEmpty())
                 {
-                    addResponseCookies(response, responseSetCookies, 
proxyPathMapper, rewriterContextPath);
+                    addResponseCookies(request, response, responseSetCookies, 
proxyPathMapper, rewriterContextPath);
                 }
                 
                 response.sendRedirect(redirectLocation);
@@ -487,7 +487,7 @@
                 
                 if (!responseSetCookies.isEmpty())
                 {
-                    addResponseCookies(response, responseSetCookies, 
proxyPathMapper, rewriterContextPath);
+                    addResponseCookies(request, response, responseSetCookies, 
proxyPathMapper, rewriterContextPath);
                 }
                 
                 return;
@@ -543,7 +543,7 @@
                     
                     if (!responseSetCookies.isEmpty())
                     {
-                        addResponseCookies(response, responseSetCookies, 
proxyPathMapper, rewriterContextPath);
+                        addResponseCookies(request, response, 
responseSetCookies, proxyPathMapper, rewriterContextPath);
                     }
                     
                     // Send the content to the client
@@ -592,8 +592,9 @@
         }
     }
     
-    private void addResponseCookies(HttpServletResponse response, 
List<org.apache.http.cookie.Cookie> responseSetCookies, 
HttpReverseProxyPathMapper proxyPathMapper, String rewriterContextPath)
+    private void addResponseCookies(HttpServletRequest request, 
HttpServletResponse response, List<org.apache.http.cookie.Cookie> 
responseSetCookies, HttpReverseProxyPathMapper proxyPathMapper, String 
rewriterContextPath)
     {
+        boolean isSecureRequest = request.isSecure();
         Set<String> includes = proxyPathMapper.getRewriteCookiePathIncludes();
         Set<String> excludes = proxyPathMapper.getRewriteCookiePathExcludes();
         boolean includesEmpty = (includes == null || includes.isEmpty());
@@ -606,6 +607,7 @@
         {
             String cookieName = cookie.getName();
             Cookie responseCookie = new Cookie(cookieName, cookie.getValue());
+            responseCookie.setVersion(cookie.getVersion());
             responseCookie.setComment(cookie.getComment());
             Date expireDate = cookie.getExpiryDate();
             
@@ -615,7 +617,7 @@
                 responseCookie.setMaxAge(maxAgeSeconds);
             }
             
-            responseCookie.setSecure(cookie.isSecure());
+            responseCookie.setSecure(isSecureRequest && cookie.isSecure());
             responseCookie.setVersion(cookie.getVersion());
             
             if ((allEmpty) || (!includesEmpty && 
includes.contains(cookieName)) || (!excludesEmpty && 
!excludes.contains(cookieName)))


Reply via email to