Return-Path: X-Original-To: apmail-tomcat-dev-archive@www.apache.org Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4B3461787C for ; Wed, 21 Oct 2015 10:16:22 +0000 (UTC) Received: (qmail 69905 invoked by uid 500); 21 Oct 2015 10:16:21 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 69827 invoked by uid 500); 21 Oct 2015 10:16:21 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 69817 invoked by uid 99); 21 Oct 2015 10:16:21 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Oct 2015 10:16:21 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 5A214C3B45 for ; Wed, 21 Oct 2015 10:16:21 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.801 X-Spam-Level: * X-Spam-Status: No, score=1.801 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=0.001] autolearn=disabled Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id J87vKFM5Vsvb for ; Wed, 21 Oct 2015 10:16:19 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTP id 72146439B6 for ; Wed, 21 Oct 2015 10:16:19 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id EAEE7E0454 for ; Wed, 21 Oct 2015 10:16:18 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 594FE3A0337 for ; Wed, 21 Oct 2015 10:16:18 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1709787 - in /tomcat/trunk: java/org/apache/catalina/authenticator/jaspic/ java/org/apache/catalina/authenticator/jaspic/provider/ java/org/apache/catalina/authenticator/jaspic/provider/modules/ java/org/apache/catalina/startup/ test/org/a... Date: Wed, 21 Oct 2015 10:16:17 -0000 To: dev@tomcat.apache.org From: remm@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20151021101618.594FE3A0337@svn01-us-west.apache.org> Author: remm Date: Wed Oct 21 10:16:17 2015 New Revision: 1709787 URL: http://svn.apache.org/viewvc?rev=1709787&view=rev Log: Add properties for the JASPIC modules, plus some cleanups (more properties will be needed). Patch from Fjodor Vershinin with some changes. Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/JaspicAuthenticator.java 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/TomcatServerAuthContext.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 tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/JaspicAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/JaspicAuthenticator.java?rev=1709787&r1=1709786&r2=1709787&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/JaspicAuthenticator.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/JaspicAuthenticator.java Wed Oct 21 10:16:17 2015 @@ -17,6 +17,8 @@ package org.apache.catalina.authenticator.jaspic; import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -49,8 +51,7 @@ public class JaspicAuthenticator extends private Subject serviceSubject; - @SuppressWarnings("rawtypes") - private Map authProperties = null; + private Map authProperties = new HashMap<>(); private JaspicCallbackHandler callbackHandler; @@ -157,4 +158,15 @@ public class JaspicAuthenticator extends protected String getAuthMethod() { return context.getLoginConfig().getAuthMethod(); } + + + public void setProperty(String key, String value) { + this.authProperties.put(key, value); + } + + + public Map getAuthProperties() { + return Collections.unmodifiableMap(authProperties); + } + } 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=1709787&r1=1709786&r2=1709787&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 Wed Oct 21 10:16:17 2015 @@ -46,16 +46,18 @@ public class TomcatAuthConfig implements private Context context; private LoginConfig loginConfig; private Realm realm; - + private Map properties; public TomcatAuthConfig(String layer, String appContext, CallbackHandler callbackHandler, - Context context) { + Context context, Map properties) throws AuthException { this.messageLayer = layer; this.appContext = appContext; this.handler = callbackHandler; this.context = context; + this.properties = properties; this.realm = context.getRealm(); this.loginConfig = context.getLoginConfig(); + initializeAuthContext(properties); } @@ -90,21 +92,31 @@ public class TomcatAuthConfig implements @Override - @SuppressWarnings("rawtypes") + @SuppressWarnings({ "rawtypes", "unchecked" }) public synchronized ServerAuthContext getAuthContext(String authContextID, Subject serviceSubject, Map properties) throws AuthException { if (this.tomcatServerAuthContext == null) { - this.tomcatServerAuthContext = new TomcatServerAuthContext(handler, getModule(), - getOptions()); + initializeAuthContext(properties); } return tomcatServerAuthContext; } - private Map getOptions() { - Map options = new HashMap<>(); - options.put(TomcatAuthModule.REALM_NAME, getRealmName()); - return options; + private void initializeAuthContext(Map properties) throws AuthException { + TomcatAuthModule module = getModule(); + module.initialize(null, null, handler, getMergedProperties(properties)); + this.tomcatServerAuthContext = new TomcatServerAuthContext(module); + } + + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private Map getMergedProperties(Map properties) { + Map mergedProperties = new HashMap<>(this.properties); + mergedProperties.put(TomcatAuthModule.REALM_NAME, getRealmName()); + if (properties != null) { + mergedProperties.putAll(properties); + } + return mergedProperties; } 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=1709787&r1=1709786&r2=1709787&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 Wed Oct 21 10:16:17 2015 @@ -38,8 +38,9 @@ public class TomcatAuthConfigProvider im private Context context; - public TomcatAuthConfigProvider(Context context) { + public TomcatAuthConfigProvider(Context context, Map properties) { this.context = context; + this.providerProperties = properties; } @@ -62,7 +63,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, context); + this.serverAuthConfig = new TomcatAuthConfig(layer, appContext, handler, context, providerProperties); } return this.serverAuthConfig; } Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java?rev=1709787&r1=1709786&r2=1709787&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java Wed Oct 21 10:16:17 2015 @@ -16,10 +16,7 @@ */ package org.apache.catalina.authenticator.jaspic.provider; -import java.util.Map; - 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; @@ -39,10 +36,8 @@ public class TomcatServerAuthContext imp private ServerAuthModule module; - public TomcatServerAuthContext(CallbackHandler handler, ServerAuthModule module, - Map options) throws AuthException { + public TomcatServerAuthContext(ServerAuthModule module) { this.module = module; - this.module.initialize(null, null, handler, options); } 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=1709787&r1=1709786&r2=1709787&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 Wed Oct 21 10:16:17 2015 @@ -70,8 +70,6 @@ public class FormAuthModule extends Tomc private Realm realm; private LoginConfig loginConfig; - private boolean changeSessionIdOnAuthenication = true; - public FormAuthModule(Context context) { super(context); @@ -80,10 +78,11 @@ public class FormAuthModule extends Tomc } - @SuppressWarnings("rawtypes") @Override public void initializeModule(MessagePolicy requestPolicy, MessagePolicy responsePolicy, - CallbackHandler handler, Map options) throws AuthException { + CallbackHandler handler, Map options) throws AuthException { + this.characterEncoding = options.get("characterEncoding"); + this.landingPage = options.get("landingPage"); } @@ -106,7 +105,7 @@ public class FormAuthModule extends Tomc Request request = (Request) messageInfo.getRequestMessage(); HttpServletResponse response = (HttpServletResponse) messageInfo.getResponseMessage(); - if (!cachePrincipalsInSession && isUserAuthenicatedBefore(request)) { + if (!cache && isUserAuthenticatedBefore(request)) { return handleSavedCredentials(clientSubject, request, response); } @@ -118,13 +117,14 @@ public class FormAuthModule extends Tomc } if (!isLoginActionRequest(request)) { - return handleNoLoginAction(request, response); + return handleRedirectToLoginPage(request, response); } - return handleLoginAction(request, response); + return handleLoginFormAction(request, response); } + // TODO Extract common patterns in processing cached principal and cached credentials private AuthStatus handleSavedCredentials(Subject clientSubject, Request request, HttpServletResponse response) throws IOException, UnsupportedCallbackException { Session session = request.getSessionInternal(true); @@ -154,7 +154,7 @@ public class FormAuthModule extends Tomc } - private boolean isUserAuthenicatedBefore(Request request) { + private boolean isUserAuthenticatedBefore(Request request) { Session session = request.getSessionInternal(true); String username = (String) session.getNote(Constants.SESS_USERNAME_NOTE); String password = (String) session.getNote(Constants.SESS_PASSWORD_NOTE); @@ -174,7 +174,7 @@ public class FormAuthModule extends Tomc // If we're caching principals we no longer need getPrincipal the // username // and password in the session, so remove them - if (cachePrincipalsInSession) { + if (cache) { session.removeNote(Constants.SESS_USERNAME_NOTE); session.removeNote(Constants.SESS_PASSWORD_NOTE); } @@ -201,7 +201,7 @@ public class FormAuthModule extends Tomc * @return * @throws IOException */ - private AuthStatus handleNoLoginAction(Request request, HttpServletResponse response) + private AuthStatus handleRedirectToLoginPage(Request request, HttpServletResponse response) throws IOException { Session session = request.getSessionInternal(true); if (log.isDebugEnabled()) { @@ -230,7 +230,7 @@ public class FormAuthModule extends Tomc * @return * @throws IOException */ - private AuthStatus handleLoginAction(Request request, HttpServletResponse response) + private AuthStatus handleLoginFormAction(Request request, HttpServletResponse response) throws IOException { request.getResponse().sendAcknowledgement(); @@ -374,7 +374,7 @@ public class FormAuthModule extends Tomc return; } - if (getChangeSessionIdOnAuthentication()) { + if (changeSessionIdOnAuthentication) { Session session = request.getSessionInternal(false); if (session != null) { Manager manager = request.getContext().getManager(); @@ -406,11 +406,6 @@ public class FormAuthModule extends Tomc } - private boolean getChangeSessionIdOnAuthentication() { - return changeSessionIdOnAuthenication ; - } - - /** * Called to forward to the error page * 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=1709787&r1=1709786&r2=1709787&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 Wed Oct 21 10:16:17 2015 @@ -57,7 +57,8 @@ public abstract class TomcatAuthModule i protected Context context; - protected boolean cachePrincipalsInSession = true; + protected boolean cache = true; + protected boolean changeSessionIdOnAuthentication = true; public TomcatAuthModule(Context context) { @@ -71,11 +72,13 @@ public abstract class TomcatAuthModule i } - @SuppressWarnings("rawtypes") + @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public final void initialize(MessagePolicy requestPolicy, MessagePolicy responsePolicy, CallbackHandler handler, Map options) throws AuthException { this.handler = handler; + this.cache = (Boolean.parseBoolean((String) options.get("cache"))); + this.changeSessionIdOnAuthentication = Boolean.parseBoolean((String) options.get("changeSessionIdOnAuthentication")); String name = (String) options.get(REALM_NAME); if (name != null) { this.realmName = name; @@ -99,9 +102,8 @@ public abstract class TomcatAuthModule i * @param options * @throws AuthException */ - @SuppressWarnings("rawtypes") public abstract void initializeModule(MessagePolicy requestPolicy, - MessagePolicy responsePolicy, CallbackHandler handler, Map options) + MessagePolicy responsePolicy, CallbackHandler handler, Map options) throws AuthException; Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1709787&r1=1709786&r2=1709787&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Wed Oct 21 10:16:17 2015 @@ -395,8 +395,7 @@ public class ContextConfig implements Li if (authenticator == null) { String authMethod = loginConfig.getAuthMethod(); if (authMethod != null && authMethod.contains("JASPIC")) { - //TODO temporary workaround, Jaspic should be enabled by default - authenticator = configureDefaultJaspicAuthModules(); + authenticator = new JaspicAuthenticator(); } } @@ -408,9 +407,7 @@ public class ContextConfig implements Li } // Identify the class name of the Valve we should configure - String authenticatorName = null; - authenticatorName = - authenticators.getProperty(loginConfig.getAuthMethod()); + String authenticatorName = authenticators.getProperty(loginConfig.getAuthMethod()); if (authenticatorName == null) { log.error(sm.getString("contextConfig.authenticatorMissing", loginConfig.getAuthMethod())); @@ -448,14 +445,20 @@ public class ContextConfig implements Li /** * Configure and register default JASPIC modules - * @return */ - private JaspicAuthenticator configureDefaultJaspicAuthModules() { + private void configureDefaultJaspicAuthModules() { + if (!(context.getAuthenticator() instanceof JaspicAuthenticator)) { + return; + } + // TODO currently we setup default provider if we have + // JaspicAuthenicator registred. + // we need to find a better way to decide, if we want embedded provider + // or not + JaspicAuthenticator authenticator = (JaspicAuthenticator) context.getAuthenticator(); AuthConfigFactory authConfigFactory = AuthConfigFactory.getFactory(); - TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(context); + TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(context, authenticator.getAuthProperties()); authConfigFactory.registerConfigProvider(provider, JaspicAuthenticator.MESSAGE_LAYER, getJaspicAppContext(), "Tomcat Jaspic"); - return new JaspicAuthenticator(); } private String getJaspicAppContext() { @@ -807,6 +810,7 @@ public class ContextConfig implements Li // Configure an authenticator if we need one if (ok) { authenticatorConfig(); + configureDefaultJaspicAuthModules(); } // Dump the contents of this pipeline if requested Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java?rev=1709787&r1=1709786&r2=1709787&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java (original) +++ tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java Wed Oct 21 10:16:17 2015 @@ -87,11 +87,12 @@ public class TestJaspicBasicAuthenticato lc.setRealmName(REALM); ctxt.setLoginConfig(lc); + JaspicAuthenticator authenticator = new JaspicAuthenticator(); + ctxt.getPipeline().addValve(authenticator); AuthConfigFactory authConfigFactory = AuthConfigFactory.getFactory(); - TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctxt); + TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctxt, authenticator.getAuthProperties()); authConfigFactory.registerConfigProvider(provider, JaspicAuthenticator.MESSAGE_LAYER, null, "Tomcat Jaspic"); - ctxt.getPipeline().addValve(new JaspicAuthenticator()); tomcat.start(); } Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java?rev=1709787&r1=1709786&r2=1709787&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java (original) +++ tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java Wed Oct 21 10:16:17 2015 @@ -299,11 +299,12 @@ public class TestJaspicDigestAuthenticat lc.setRealmName(REALM); ctxt.setLoginConfig(lc); + JaspicAuthenticator authenticator = new JaspicAuthenticator(); + ctxt.getPipeline().addValve(authenticator); AuthConfigFactory authConfigFactory = AuthConfigFactory.getFactory(); - TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctxt); + TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctxt, authenticator.getAuthProperties()); authConfigFactory.registerConfigProvider(provider, JaspicAuthenticator.MESSAGE_LAYER, null, "Tomcat Jaspic"); - ctxt.getPipeline().addValve(new JaspicAuthenticator()); } Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java?rev=1709787&r1=1709786&r2=1709787&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java (original) +++ tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java Wed Oct 21 10:16:17 2015 @@ -636,11 +636,12 @@ public class TestJaspicFormAuthenticator realm.addUserRole("tomcat", "tomcat"); ctx.setRealm(realm); + JaspicAuthenticator jaspicAuthenticator = new JaspicAuthenticator(); + ctx.getPipeline().addValve(jaspicAuthenticator); AuthConfigFactory authConfigFactory = AuthConfigFactory.getFactory(); - TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctx); + TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctx, jaspicAuthenticator.getAuthProperties()); authConfigFactory.registerConfigProvider(provider, JaspicAuthenticator.MESSAGE_LAYER, null, "Tomcat Jaspic"); - ctx.getPipeline().addValve(new JaspicAuthenticator()); tomcat.start(); @@ -704,11 +705,12 @@ public class TestJaspicFormAuthenticator realm.addUserRole("tomcat", "tomcat"); ctx.setRealm(realm); + JaspicAuthenticator authenticator = new JaspicAuthenticator(); + ctx.getPipeline().addValve(authenticator); AuthConfigFactory authConfigFactory = AuthConfigFactory.getFactory(); - TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctx); + TomcatAuthConfigProvider provider = new TomcatAuthConfigProvider(ctx, authenticator.getAuthProperties()); authConfigFactory.registerConfigProvider(provider, JaspicAuthenticator.MESSAGE_LAYER, null, "Tomcat Jaspic"); - ctx.getPipeline().addValve(new JaspicAuthenticator()); tomcat.start(); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org