Author: markt
Date: Mon Feb 13 14:53:37 2017
New Revision: 1782789

URL: http://svn.apache.org/viewvc?rev=1782789&view=rev
Log:
Optional isn't available in Java 7
Modified:
    
tomcat/tc8.5.x/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java?rev=1782789&r1=1782788&r2=1782789&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java
 (original)
+++ 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java
 Mon Feb 13 14:53:37 2017
@@ -23,15 +23,16 @@ 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;
+import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.message.AuthException;
 import javax.security.auth.message.AuthStatus;
 import javax.security.auth.message.MessageInfo;
 import javax.security.auth.message.config.AuthConfigFactory;
 import javax.security.auth.message.config.AuthConfigProvider;
+import javax.security.auth.message.config.ClientAuthConfig;
 import javax.security.auth.message.config.RegistrationListener;
 import javax.security.auth.message.config.ServerAuthConfig;
 import javax.security.auth.message.config.ServerAuthContext;
@@ -88,7 +89,7 @@ import org.apache.tomcat.util.res.String
  * @author Craig R. McClanahan
  */
 public abstract class AuthenticatorBase extends ValveBase
-        implements Authenticator, RegistrationListener {
+implements Authenticator, RegistrationListener {
 
     private static final Log log = LogFactory.getLog(AuthenticatorBase.class);
 
@@ -98,6 +99,8 @@ public abstract class AuthenticatorBase
     private static final String DATE_ONE =
             (new SimpleDateFormat(FastHttpDateFormat.RFC1123_DATE, 
Locale.US)).format(new Date(1));
 
+    private static final AuthConfigProvider NO_PROVIDER_AVAILABLE = new 
NoOpAuthConfigProvider();
+
     /**
      * The string manager for this package.
      */
@@ -220,7 +223,7 @@ public abstract class AuthenticatorBase
     protected SingleSignOn sso = null;
 
     private volatile String jaspicAppContextID = null;
-    private volatile Optional<AuthConfigProvider> jaspicProvider = null;
+    private volatile AuthConfigProvider jaspicProvider = null;
 
 
     // ------------------------------------------------------------- Properties
@@ -556,7 +559,7 @@ public abstract class AuthenticatorBase
 
             if (jaspicProvider == null && !doAuthenticate(request, response) ||
                     jaspicProvider != null &&
-                            !authenticateJaspic(request, response, 
jaspicState, false)) {
+                    !authenticateJaspic(request, response, jaspicState, 
false)) {
                 if (log.isDebugEnabled()) {
                     log.debug(" Failed authenticate() test");
                 }
@@ -1187,17 +1190,22 @@ public abstract class AuthenticatorBase
 
 
     private AuthConfigProvider getJaspicProvider() {
-        Optional<AuthConfigProvider> provider = jaspicProvider;
-        if (provider == null) {
+        AuthConfigProvider provider = jaspicProvider;
+        if (NO_PROVIDER_AVAILABLE == provider) {
+            return null;
+        } else if (provider == null) {
             provider = findJaspicProvider();
         }
-        return provider.orElse(null);
+        return provider;
     }
 
-    private Optional<AuthConfigProvider> findJaspicProvider() {
+    private AuthConfigProvider findJaspicProvider() {
         AuthConfigFactory factory = AuthConfigFactory.getFactory();
-        Optional<AuthConfigProvider> provider =
-                Optional.ofNullable(factory.getConfigProvider("HttpServlet", 
jaspicAppContextID, this));
+        AuthConfigProvider provider =
+                factory.getConfigProvider("HttpServlet", jaspicAppContextID, 
this);
+        if (provider == null) {
+            provider = NO_PROVIDER_AVAILABLE;
+        }
         jaspicProvider = provider;
         return provider;
     }
@@ -1212,4 +1220,24 @@ public abstract class AuthenticatorBase
         public MessageInfo messageInfo = null;
         public ServerAuthContext serverAuthContext = null;
     }
+
+
+    private static class NoOpAuthConfigProvider implements AuthConfigProvider {
+
+        @Override
+        public ClientAuthConfig getClientAuthConfig(String layer, String 
appContext, CallbackHandler handler)
+                throws AuthException {
+            return null;
+        }
+
+        @Override
+        public ServerAuthConfig getServerAuthConfig(String layer, String 
appContext, CallbackHandler handler)
+                throws AuthException {
+            return null;
+        }
+
+        @Override
+        public void refresh() {
+        }
+    }
 }
\ No newline at end of file



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

Reply via email to