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