Author: markt
Date: Fri Jul  3 18:54:29 2015
New Revision: 1689058

URL: http://svn.apache.org/r1689058
Log:
Make the Context available to the auth modules.
Patch by fjodorver

Modified:
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfig.java
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfigProvider.java
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/BasicAuthModule.java
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfig.java?rev=1689058&r1=1689057&r2=1689058&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfig.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfig.java
 Fri Jul  3 18:54:29 2015
@@ -26,6 +26,7 @@ import javax.security.auth.message.Messa
 import javax.security.auth.message.config.ServerAuthConfig;
 import javax.security.auth.message.config.ServerAuthContext;
 
+import org.apache.catalina.Context;
 import org.apache.catalina.Realm;
 import 
org.apache.catalina.authenticator.jaspic.provider.modules.BasicAuthModule;
 import 
org.apache.catalina.authenticator.jaspic.provider.modules.DigestAuthModule;
@@ -41,17 +42,20 @@ public class TomcatAuthConfig implements
     private String appContext;
     private CallbackHandler handler;
     private TomcatServerAuthContext tomcatServerAuthContext;
-    private Realm realm;
+
+    private Context context;
     private LoginConfig loginConfig;
+    private Realm realm;
 
 
     public TomcatAuthConfig(String layer, String appContext, CallbackHandler 
callbackHandler,
-            Realm realm, LoginConfig loginConfig) {
+            Context context) {
         this.messageLayer = layer;
         this.appContext = appContext;
         this.handler = callbackHandler;
-        this.realm = realm;
-        this.loginConfig = loginConfig;
+        this.context = context;
+        this.realm = context.getRealm();
+        this.loginConfig = context.getLoginConfig();
     }
 
 
@@ -108,13 +112,13 @@ public class TomcatAuthConfig implements
         String authMethod = getAuthMethod();
         switch (authMethod) {
         case "BASIC": {
-            return new BasicAuthModule();
+            return new BasicAuthModule(context);
         }
         case "DIGEST": {
-            return new DigestAuthModule(realm);
+            return new DigestAuthModule(context);
         }
         case "FORM": {
-            return new FormAuthModule();
+            return new FormAuthModule(context);
         }
         default: {
             throw new AuthException(

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfigProvider.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfigProvider.java?rev=1689058&r1=1689057&r2=1689058&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfigProvider.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatAuthConfigProvider.java
 Fri Jul  3 18:54:29 2015
@@ -26,24 +26,20 @@ import javax.security.auth.message.confi
 import javax.security.auth.message.config.ServerAuthConfig;
 
 import org.apache.catalina.Context;
-import org.apache.catalina.Realm;
-import org.apache.tomcat.util.descriptor.web.LoginConfig;
 
 /**
- * Tomcat's context based JASPIC authentication provider. It returns 
authentication
- * modules depending on context login-config setup.
+ * Tomcat's context based JASPIC authentication provider. It returns
+ * authentication modules depending on context login-config setup.
  */
 public class TomcatAuthConfigProvider implements AuthConfigProvider {
 
     private Map<String, String> providerProperties;
     private ServerAuthConfig serverAuthConfig;
-    private Realm realm;
-    private LoginConfig loginConfig;
+    private Context context;
 
 
     public TomcatAuthConfigProvider(Context context) {
-        this.realm = context.getRealm();
-        this.loginConfig = context.getLoginConfig();
+        this.context = context;
     }
 
 
@@ -66,7 +62,7 @@ public class TomcatAuthConfigProvider im
     public synchronized ServerAuthConfig getServerAuthConfig(String layer, 
String appContext,
             CallbackHandler handler) throws AuthException {
         if (this.serverAuthConfig == null) {
-            this.serverAuthConfig = new TomcatAuthConfig(layer, appContext, 
handler, realm, loginConfig);
+            this.serverAuthConfig = new TomcatAuthConfig(layer, appContext, 
handler, context);
         }
         return this.serverAuthConfig;
     }

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/BasicAuthModule.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/BasicAuthModule.java?rev=1689058&r1=1689057&r2=1689058&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/BasicAuthModule.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/BasicAuthModule.java
 Fri Jul  3 18:54:29 2015
@@ -35,6 +35,7 @@ import javax.security.auth.message.callb
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.catalina.Context;
 import org.apache.catalina.realm.GenericPrincipal;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.MessageBytes;
@@ -48,6 +49,12 @@ public class BasicAuthModule extends Tom
     private Class<?>[] supportedMessageTypes = new Class[] { 
HttpServletRequest.class,
             HttpServletResponse.class };
 
+
+    public BasicAuthModule(Context context) {
+        super(context);
+    }
+
+
     @SuppressWarnings("rawtypes")
     @Override
     public void initializeModule(MessagePolicy requestPolicy, MessagePolicy 
responsePolicy,
@@ -114,8 +121,8 @@ public class BasicAuthModule extends Tom
 
 
     private GenericPrincipal getPrincipal(PasswordValidationCallback 
passwordCallback) {
-        Iterator<Object> credentials =
-                
passwordCallback.getSubject().getPrivateCredentials().iterator();
+        Iterator<Object> credentials = 
passwordCallback.getSubject().getPrivateCredentials()
+                .iterator();
         return (GenericPrincipal) credentials.next();
     }
 
@@ -147,7 +154,6 @@ public class BasicAuthModule extends Tom
         return supportedMessageTypes;
     }
 
-
     /**
      * Parser for an HTTP Authorization header for BASIC authentication as per
      * RFC 2617 section 2, and the Base64 encoded credentials as per RFC 2045
@@ -167,14 +173,15 @@ public class BasicAuthModule extends Tom
         private String username = null;
         private String password = null;
 
+
         /**
          * Parse the HTTP Authorization header for BASIC authentication as per
          * RFC 2617 section 2, and the Base64 encoded credentials as per RFC
          * 2045 section 6.8.
          *
          * @param input The header value to parse in-place
-         * @throws IllegalArgumentException If the header does not conform to 
RFC
-         *             2617
+         * @throws IllegalArgumentException If the header does not conform to
+         *             RFC 2617
          */
         public BasicCredentials(ByteChunk input) throws 
IllegalArgumentException {
             authorization = input;
@@ -184,6 +191,7 @@ public class BasicAuthModule extends Tom
             parseCredentials(decoded);
         }
 
+
         /**
          * Trivial accessor.
          *
@@ -194,6 +202,7 @@ public class BasicAuthModule extends Tom
             return username;
         }
 
+
         /**
          * Trivial accessor.
          *
@@ -204,6 +213,7 @@ public class BasicAuthModule extends Tom
             return password;
         }
 
+
         /*
          * The authorization method string is case-insensitive and must have at
          * least one space character as a delimiter.
@@ -219,6 +229,7 @@ public class BasicAuthModule extends Tom
             }
         }
 
+
         /*
          * Decode the base64-user-pass token, which RFC 2617 states can be
          * longer than the 76 characters per line limit defined in RFC 2045. 
The
@@ -236,6 +247,7 @@ public class BasicAuthModule extends Tom
             return decoded;
         }
 
+
         /*
          * Extract the mandatory username token and separate it from the
          * optional password token. Tolerate surplus surrounding white space.

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java?rev=1689058&r1=1689057&r2=1689058&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java
 Fri Jul  3 18:54:29 2015
@@ -37,6 +37,7 @@ import javax.security.auth.message.callb
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.catalina.Context;
 import org.apache.catalina.Realm;
 import org.apache.catalina.util.StandardSessionIdGenerator;
 import org.apache.juli.logging.Log;
@@ -109,8 +110,9 @@ public class DigestAuthModule extends To
 
     // ------------------------------------------------------------- Properties
 
-    public DigestAuthModule(Realm realm) {
-        this.realm = realm;
+    public DigestAuthModule(Context context) {
+        super(context);
+        this.realm = context.getRealm();
     }
 
 

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java?rev=1689058&r1=1689057&r2=1689058&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java
 Fri Jul  3 18:54:29 2015
@@ -27,6 +27,7 @@ import javax.security.auth.message.Messa
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.catalina.Context;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -42,12 +43,8 @@ public class FormAuthModule extends Tomc
     private String landingPage;
 
 
-    public FormAuthModule() {
-    }
-
-
-    public FormAuthModule(String landingPage) {
-        this.landingPage = landingPage;
+    public FormAuthModule(Context context) {
+        super(context);
     }
 
 

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java?rev=1689058&r1=1689057&r2=1689058&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java
 Fri Jul  3 18:54:29 2015
@@ -25,6 +25,7 @@ import javax.security.auth.message.Messa
 import javax.security.auth.message.MessagePolicy;
 import javax.security.auth.message.module.ServerAuthModule;
 
+import org.apache.catalina.Context;
 import org.apache.catalina.authenticator.jaspic.MessageInfoImpl;
 import org.apache.tomcat.util.res.StringManager;
 
@@ -48,6 +49,13 @@ public abstract class TomcatAuthModule i
 
     protected CallbackHandler handler;
 
+    protected Context context;
+
+
+    public TomcatAuthModule(Context context) {
+        this.context = context;
+    }
+
 
     protected boolean isMandatory(MessageInfo messageInfo) {
         String mandatory = (String) 
messageInfo.getMap().get(MessageInfoImpl.IS_MANDATORY);
@@ -55,13 +63,13 @@ public abstract class TomcatAuthModule i
     }
 
 
-     @SuppressWarnings("rawtypes")
-     @Override
-     public final void initialize(MessagePolicy requestPolicy, MessagePolicy 
responsePolicy,
-             CallbackHandler handler, Map options) throws AuthException {
-         this.handler = handler;
-         this.realmName = (String) options.get(REALM_NAME);
-         initializeModule(requestPolicy, responsePolicy, handler, options);
+    @SuppressWarnings("rawtypes")
+    @Override
+    public final void initialize(MessagePolicy requestPolicy, MessagePolicy 
responsePolicy,
+            CallbackHandler handler, Map options) throws AuthException {
+        this.handler = handler;
+        this.realmName = (String) options.get(REALM_NAME);
+        initializeModule(requestPolicy, responsePolicy, handler, options);
     }
 
 



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

Reply via email to