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: [email protected]
For additional commands, e-mail: [email protected]