Author: remm
Date: Tue Dec  5 09:07:08 2017
New Revision: 1817166

URL: http://svn.apache.org/viewvc?rev=1817166&view=rev
Log:
- Don't use setHeader for the cookie header, the header copy is done before.
- Use AJP auth mechanism to pass a userName that will be used again for auth.

Modified:
    tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java

Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java?rev=1817166&r1=1817165&r2=1817166&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java Tue 
Dec  5 09:07:08 2017
@@ -70,6 +70,7 @@ public class ApplicationPushBuilder impl
     private String path;
     private String queryString;
     private String sessionId;
+    private String userName;
 
 
     public ApplicationPushBuilder(Request catalinaRequest, HttpServletRequest 
request) {
@@ -155,6 +156,12 @@ public class ApplicationPushBuilder impl
                 cookies.add(new Cookie(responseCookie.getName(), 
responseCookie.getValue()));
             }
         }
+
+        // Authentication
+        if (catalinaRequest.getPrincipal() != null) {
+            userName = catalinaRequest.getPrincipal().getName();
+            setHeader("authorization", "x-push");
+        }
     }
 
     @Override
@@ -344,9 +351,16 @@ public class ApplicationPushBuilder impl
         }
 
         // Cookies
-        setHeader("cookie", generateCookieHeader(cookies,
+        pushTarget.getMimeHeaders().addValue("cookie")
+            .setString(generateCookieHeader(cookies,
                 catalinaRequest.getContext().getCookieProcessor()));
 
+        // Authorization
+        if (userName != null) {
+            pushTarget.getRemoteUser().setString(userName);
+            pushTarget.setRemoteUserNeedsAuthorization(true);
+        }
+
         coyoteRequest.action(ActionCode.PUSH_REQUEST, pushTarget);
 
         // Reset for next call to this method



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to