You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/02/13 14:36:33 UTC

svn commit: r1782779 - in /tomcat/trunk: java/org/apache/catalina/authenticator/AuthenticatorBase.java webapps/docs/changelog.xml

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