* 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:
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user