1
0
mirror of synced 2026-05-22 21:33:16 +00:00

* 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.
This commit is contained in:
Francois Beausoleil
2004-03-24 18:33:19 +00:00
parent 61b657318d
commit 1e4c234ea7
@@ -18,8 +18,6 @@ package net.sf.acegisecurity.adapters;
import net.sf.acegisecurity.Authentication; import net.sf.acegisecurity.Authentication;
import net.sf.acegisecurity.adapters.jboss.JbossIntegrationFilter; import net.sf.acegisecurity.adapters.jboss.JbossIntegrationFilter;
import org.jboss.security.SimplePrincipal;
import javax.servlet.ServletRequest; import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -34,12 +32,10 @@ import javax.servlet.http.HttpServletRequest;
* integration filter. * integration filter.
* </p> * </p>
* *
* <p>
* See {@link AbstractIntegrationFilter} for further information.
* </p>
*
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*
* @see AbstractIntegrationFilter
*/ */
public class AutoIntegrationFilter extends AbstractIntegrationFilter { public class AutoIntegrationFilter extends AbstractIntegrationFilter {
//~ Methods ================================================================ //~ Methods ================================================================
@@ -52,8 +48,20 @@ public class AutoIntegrationFilter extends AbstractIntegrationFilter {
return new HttpRequestIntegrationFilter().extractFromContainer(request); return new HttpRequestIntegrationFilter().extractFromContainer(request);
} }
if (httpRequest.getUserPrincipal() instanceof SimplePrincipal) { try {
return new JbossIntegrationFilter().extractFromContainer(request); 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
} }
} }