Author: remm
Date: Wed Dec  6 11:26:59 2017
New Revision: 1817289

URL: http://svn.apache.org/viewvc?rev=1817289&view=rev
Log:
Take advantage of the cached session principal if possible.

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=1817289&r1=1817288&r2=1817289&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java Wed 
Dec  6 11:26:59 2017
@@ -33,6 +33,7 @@ import javax.servlet.http.HttpSession;
 import javax.servlet.http.PushBuilder;
 
 import org.apache.catalina.Context;
+import org.apache.catalina.authenticator.AuthenticatorBase;
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.util.SessionConfig;
 import org.apache.coyote.ActionCode;
@@ -159,7 +160,12 @@ public class ApplicationPushBuilder impl
 
         // Authentication
         if (catalinaRequest.getPrincipal() != null) {
-            userName = catalinaRequest.getPrincipal().getName();
+            if ((session == null) || 
catalinaRequest.getSessionInternal(false).getPrincipal() == null
+                    || !(context.getAuthenticator() instanceof 
AuthenticatorBase)
+                    || !((AuthenticatorBase) 
context.getAuthenticator()).getCache()) {
+                // Set a username only if there is no session cache for the 
principal
+                userName = catalinaRequest.getPrincipal().getName();
+            }
             setHeader("authorization", "x-push");
         }
     }



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

Reply via email to