8 changed files with 82 additions and 101 deletions
@ -1,78 +0,0 @@
@@ -1,78 +0,0 @@
|
||||
package org.springframework.security.config.http; |
||||
|
||||
import org.springframework.util.Assert; |
||||
|
||||
import java.util.Map; |
||||
import java.util.LinkedHashMap; |
||||
|
||||
/** |
||||
* Stores the default order numbers of all Spring Security filters for use in configuration. |
||||
* |
||||
* @author Luke Taylor |
||||
* @version $Id$ |
||||
*/ |
||||
abstract class FilterChainOrder { |
||||
/** |
||||
* The first position at which a Spring Security filter will be found. Any filter with an order less than this will |
||||
* be guaranteed to be placed before the Spring Security filters in the stack. |
||||
*/ |
||||
public static final int FILTER_CHAIN_FIRST = 0; |
||||
private static final int INTERVAL = 100; |
||||
private static int i = 1; |
||||
|
||||
public static final int CHANNEL_FILTER = FILTER_CHAIN_FIRST; |
||||
public static final int CONCURRENT_SESSION_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int SECURITY_CONTEXT_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int HTTP_SESSION_CONTEXT_FILTER = SECURITY_CONTEXT_FILTER; |
||||
public static final int LOGOUT_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int X509_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int PRE_AUTH_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int CAS_PROCESSING_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int AUTHENTICATION_PROCESSING_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int OPENID_PROCESSING_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int LOGIN_PAGE_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int DIGEST_PROCESSING_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int BASIC_PROCESSING_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int REQUEST_CACHE_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int SERVLET_API_SUPPORT_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int REMEMBER_ME_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int ANONYMOUS_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int SESSION_FIXATION_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int EXCEPTION_TRANSLATION_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int NTLM_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int FILTER_SECURITY_INTERCEPTOR = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
public static final int SWITCH_USER_FILTER = FILTER_CHAIN_FIRST + INTERVAL * i++; |
||||
|
||||
private static final Map<String, Integer> filterNameToOrder = new LinkedHashMap<String, Integer>(); |
||||
|
||||
static { |
||||
filterNameToOrder.put("FIRST", new Integer(Integer.MIN_VALUE)); |
||||
filterNameToOrder.put("CHANNEL_FILTER", new Integer(CHANNEL_FILTER)); |
||||
filterNameToOrder.put("CONCURRENT_SESSION_FILTER", new Integer(CONCURRENT_SESSION_FILTER)); |
||||
filterNameToOrder.put("LOGOUT_FILTER", new Integer(LOGOUT_FILTER)); |
||||
filterNameToOrder.put("X509_FILTER", new Integer(X509_FILTER)); |
||||
filterNameToOrder.put("PRE_AUTH_FILTER", new Integer(PRE_AUTH_FILTER)); |
||||
filterNameToOrder.put("CAS_PROCESSING_FILTER", new Integer(CAS_PROCESSING_FILTER)); |
||||
filterNameToOrder.put("AUTHENTICATION_PROCESSING_FILTER", new Integer(AUTHENTICATION_PROCESSING_FILTER)); |
||||
filterNameToOrder.put("OPENID_PROCESSING_FILTER", new Integer(OPENID_PROCESSING_FILTER)); |
||||
filterNameToOrder.put("BASIC_PROCESSING_FILTER", new Integer(BASIC_PROCESSING_FILTER)); |
||||
filterNameToOrder.put("SERVLET_API_SUPPORT_FILTER", new Integer(SERVLET_API_SUPPORT_FILTER)); |
||||
filterNameToOrder.put("REMEMBER_ME_FILTER", new Integer(REMEMBER_ME_FILTER)); |
||||
filterNameToOrder.put("ANONYMOUS_FILTER", new Integer(ANONYMOUS_FILTER)); |
||||
filterNameToOrder.put("EXCEPTION_TRANSLATION_FILTER", new Integer(EXCEPTION_TRANSLATION_FILTER)); |
||||
filterNameToOrder.put("NTLM_FILTER", new Integer(NTLM_FILTER)); |
||||
filterNameToOrder.put("SESSION_CONTEXT_INTEGRATION_FILTER", new Integer(HTTP_SESSION_CONTEXT_FILTER)); |
||||
filterNameToOrder.put("FILTER_SECURITY_INTERCEPTOR", new Integer(FILTER_SECURITY_INTERCEPTOR)); |
||||
filterNameToOrder.put("SWITCH_USER_FILTER", new Integer(SWITCH_USER_FILTER)); |
||||
filterNameToOrder.put("LAST", new Integer(Integer.MAX_VALUE)); |
||||
} |
||||
|
||||
/** Allows filters to be used by name in the XSD file without explicit reference to Java constants */ |
||||
public static int getOrder(String filterName) { |
||||
Integer order = filterNameToOrder.get(filterName); |
||||
|
||||
Assert.notNull(order, "Unable to match filter name " + filterName); |
||||
|
||||
return order.intValue(); |
||||
} |
||||
} |
||||
@ -0,0 +1,49 @@
@@ -0,0 +1,49 @@
|
||||
package org.springframework.security.config.http; |
||||
|
||||
|
||||
/** |
||||
* Stores the default order numbers of all Spring Security filters for use in configuration. |
||||
* |
||||
* @author Luke Taylor |
||||
* @version $Id$ |
||||
*/ |
||||
|
||||
enum SecurityFilters { |
||||
FIRST (Integer.MIN_VALUE), |
||||
CHANNEL_FILTER, |
||||
CONCURRENT_SESSION_FILTER, |
||||
SECURITY_CONTEXT_FILTER, |
||||
LOGOUT_FILTER, |
||||
X509_FILTER, |
||||
PRE_AUTH_FILTER, |
||||
CAS_FILTER, |
||||
FORM_LOGIN_FILTER, |
||||
OPENID_FILTER, |
||||
LOGIN_PAGE_FILTER, |
||||
DIGEST_AUTH_FILTER, |
||||
BASIC_AUTH_FILTER, |
||||
REQUEST_CACHE_FILTER, |
||||
SERVLET_API_SUPPORT_FILTER, |
||||
REMEMBER_ME_FILTER, |
||||
ANONYMOUS_FILTER, |
||||
SESSION_MANAGEMENT_FILTER, |
||||
EXCEPTION_TRANSLATION_FILTER, |
||||
FILTER_SECURITY_INTERCEPTOR, |
||||
SWITCH_USER_FILTER, |
||||
LAST (Integer.MAX_VALUE); |
||||
|
||||
private static final int INTERVAL = 100; |
||||
private final int order; |
||||
|
||||
private SecurityFilters() { |
||||
order = ordinal() * INTERVAL; |
||||
} |
||||
|
||||
private SecurityFilters(int order) { |
||||
this.order = order; |
||||
} |
||||
|
||||
public int getOrder() { |
||||
return order; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue