You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2017/12/06 11:26:59 UTC

svn commit: r1817289 - /tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org