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