From 1e4c234ea78909ab3f308bb796989d54b53c4342 Mon Sep 17 00:00:00 2001 From: Francois Beausoleil Date: Wed, 24 Mar 2004 18:33:19 +0000 Subject: [PATCH] * src/net/sf/acegisecurity/adapters/AutoIntegrationFilter.java: Use reflection instead of hard-coding the values to determine if we should integrate with a specific container implementation. --- .../adapters/AutoIntegrationFilter.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/org/acegisecurity/adapters/AutoIntegrationFilter.java b/core/src/main/java/org/acegisecurity/adapters/AutoIntegrationFilter.java index e003a553a5..7c4e81f02f 100644 --- a/core/src/main/java/org/acegisecurity/adapters/AutoIntegrationFilter.java +++ b/core/src/main/java/org/acegisecurity/adapters/AutoIntegrationFilter.java @@ -18,8 +18,6 @@ package net.sf.acegisecurity.adapters; import net.sf.acegisecurity.Authentication; import net.sf.acegisecurity.adapters.jboss.JbossIntegrationFilter; -import org.jboss.security.SimplePrincipal; - import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; @@ -33,13 +31,11 @@ import javax.servlet.http.HttpServletRequest; * web.xml will not need to refer to a specific container * integration filter. *

- * - *

- * See {@link AbstractIntegrationFilter} for further information. - *

* * @author Ben Alex * @version $Id$ + * + * @see AbstractIntegrationFilter */ public class AutoIntegrationFilter extends AbstractIntegrationFilter { //~ Methods ================================================================ @@ -52,8 +48,20 @@ public class AutoIntegrationFilter extends AbstractIntegrationFilter { return new HttpRequestIntegrationFilter().extractFromContainer(request); } - if (httpRequest.getUserPrincipal() instanceof SimplePrincipal) { - return new JbossIntegrationFilter().extractFromContainer(request); + try { + Class simplePrincipalClass = Class.forName( + "org.jboss.security.SimplePrincipal"); + + if (null != httpRequest.getUserPrincipal()) { + if (simplePrincipalClass.isAssignableFrom( + httpRequest.getUserPrincipal().getClass())) { + return new JbossIntegrationFilter() + .extractFromContainer(request); + } + } + } catch (ClassNotFoundException e) { + // Can't be JBoss principal + // Expected, and normal - fall through } }