Author: markt Date: Mon Feb 13 14:36:33 2017 New Revision: 1782779 URL: http://svn.apache.org/viewvc?rev=1782779&view=rev Log: Apply violetagg's performance improvement. This closes #43
Modified: tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java?rev=1782779&r1=1782778&r2=1782779&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java Mon Feb 13 14:36:33 2017 @@ -23,6 +23,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.Map; +import java.util.Optional; import java.util.Set; import javax.security.auth.Subject; @@ -219,7 +220,7 @@ public abstract class AuthenticatorBase protected SingleSignOn sso = null; private volatile String jaspicAppContextID = null; - private volatile AuthConfigProvider jaspicProvider = null; + private volatile Optional<AuthConfigProvider> jaspicProvider = null; // ------------------------------------------------------------- Properties @@ -1186,24 +1187,24 @@ public abstract class AuthenticatorBase private AuthConfigProvider getJaspicProvider() { - AuthConfigProvider provider = jaspicProvider; + Optional<AuthConfigProvider> provider = jaspicProvider; if (provider == null) { - AuthConfigFactory factory = AuthConfigFactory.getFactory(); - provider = factory.getConfigProvider("HttpServlet", jaspicAppContextID, this); - if (provider != null) { - jaspicProvider = provider; - } + provider = findJaspicProvider(); } - return provider; + return provider.orElse(null); } + private Optional<AuthConfigProvider> findJaspicProvider() { + AuthConfigFactory factory = AuthConfigFactory.getFactory(); + Optional<AuthConfigProvider> provider = + Optional.ofNullable(factory.getConfigProvider("HttpServlet", jaspicAppContextID, this)); + jaspicProvider = provider; + return provider; + } @Override public void notify(String layer, String appContext) { - AuthConfigFactory factory = AuthConfigFactory.getFactory(); - AuthConfigProvider provider = factory.getConfigProvider("HttpServlet", jaspicAppContextID, - this); - jaspicProvider = provider; + findJaspicProvider(); } @@ -1211,4 +1212,4 @@ public abstract class AuthenticatorBase public MessageInfo messageInfo = null; public ServerAuthContext serverAuthContext = null; } -} +} \ No newline at end of file Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1782779&r1=1782778&r2=1782779&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Mon Feb 13 14:36:33 2017 @@ -80,6 +80,10 @@ registered <code>RegistrationListener</code>s when a new <code>AuthConfigProvider</code> is registered. (markt) </fix> + <scode> + Improve the performance of <code>AuthenticatorBase</code> when there is + no JASPIC configuration available. (violetagg) + </scode> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org