mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-03-03 11:59:08 +00:00
Polish FilterComparator
Extracts STEP incrementing into a separate helper class
This commit is contained in:
parent
d4576a2502
commit
f164f2f869
@ -56,83 +56,53 @@ import org.springframework.web.filter.CorsFilter;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
final class FilterComparator implements Comparator<Filter>, Serializable {
|
||||
private static final int STEP = 100;
|
||||
private Map<String, Integer> filterToOrder = new HashMap<>();
|
||||
private static final int INITIAL_ORDER = 100;
|
||||
private static final int ORDER_STEP = 100;
|
||||
private final Map<String, Integer> filterToOrder = new HashMap<>();
|
||||
|
||||
FilterComparator() {
|
||||
int order = 100;
|
||||
put(ChannelProcessingFilter.class, order);
|
||||
order += STEP;
|
||||
put(ConcurrentSessionFilter.class, order);
|
||||
order += STEP;
|
||||
put(WebAsyncManagerIntegrationFilter.class, order);
|
||||
order += STEP;
|
||||
put(SecurityContextPersistenceFilter.class, order);
|
||||
order += STEP;
|
||||
put(HeaderWriterFilter.class, order);
|
||||
order += STEP;
|
||||
put(CorsFilter.class, order);
|
||||
order += STEP;
|
||||
put(CsrfFilter.class, order);
|
||||
order += STEP;
|
||||
put(LogoutFilter.class, order);
|
||||
order += STEP;
|
||||
Step order = new Step(INITIAL_ORDER, ORDER_STEP);
|
||||
put(ChannelProcessingFilter.class, order.next());
|
||||
put(ConcurrentSessionFilter.class, order.next());
|
||||
put(WebAsyncManagerIntegrationFilter.class, order.next());
|
||||
put(SecurityContextPersistenceFilter.class, order.next());
|
||||
put(HeaderWriterFilter.class, order.next());
|
||||
put(CorsFilter.class, order.next());
|
||||
put(CsrfFilter.class, order.next());
|
||||
put(LogoutFilter.class, order.next());
|
||||
filterToOrder.put(
|
||||
"org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter",
|
||||
order);
|
||||
order += STEP;
|
||||
put(X509AuthenticationFilter.class, order);
|
||||
order += STEP;
|
||||
put(AbstractPreAuthenticatedProcessingFilter.class, order);
|
||||
order += STEP;
|
||||
order.next());
|
||||
put(X509AuthenticationFilter.class, order.next());
|
||||
put(AbstractPreAuthenticatedProcessingFilter.class, order.next());
|
||||
filterToOrder.put("org.springframework.security.cas.web.CasAuthenticationFilter",
|
||||
order);
|
||||
order += STEP;
|
||||
order.next());
|
||||
filterToOrder.put(
|
||||
"org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter",
|
||||
order);
|
||||
order += STEP;
|
||||
put(UsernamePasswordAuthenticationFilter.class, order);
|
||||
order += STEP;
|
||||
put(ConcurrentSessionFilter.class, order);
|
||||
order += STEP;
|
||||
order.next());
|
||||
put(UsernamePasswordAuthenticationFilter.class, order.next());
|
||||
put(ConcurrentSessionFilter.class, order.next());
|
||||
filterToOrder.put(
|
||||
"org.springframework.security.openid.OpenIDAuthenticationFilter", order);
|
||||
order += STEP;
|
||||
put(DefaultLoginPageGeneratingFilter.class, order);
|
||||
order += STEP;
|
||||
put(DefaultLogoutPageGeneratingFilter.class, order);
|
||||
order += STEP;
|
||||
put(ConcurrentSessionFilter.class, order);
|
||||
order += STEP;
|
||||
put(DigestAuthenticationFilter.class, order);
|
||||
order += STEP;
|
||||
"org.springframework.security.openid.OpenIDAuthenticationFilter", order.next());
|
||||
put(DefaultLoginPageGeneratingFilter.class, order.next());
|
||||
put(DefaultLogoutPageGeneratingFilter.class, order.next());
|
||||
put(ConcurrentSessionFilter.class, order.next());
|
||||
put(DigestAuthenticationFilter.class, order.next());
|
||||
filterToOrder.put(
|
||||
"org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter", order);
|
||||
order += STEP;
|
||||
put(BasicAuthenticationFilter.class, order);
|
||||
order += STEP;
|
||||
put(RequestCacheAwareFilter.class, order);
|
||||
order += STEP;
|
||||
put(SecurityContextHolderAwareRequestFilter.class, order);
|
||||
order += STEP;
|
||||
put(JaasApiIntegrationFilter.class, order);
|
||||
order += STEP;
|
||||
put(RememberMeAuthenticationFilter.class, order);
|
||||
order += STEP;
|
||||
put(AnonymousAuthenticationFilter.class, order);
|
||||
order += STEP;
|
||||
"org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter", order.next());
|
||||
put(BasicAuthenticationFilter.class, order.next());
|
||||
put(RequestCacheAwareFilter.class, order.next());
|
||||
put(SecurityContextHolderAwareRequestFilter.class, order.next());
|
||||
put(JaasApiIntegrationFilter.class, order.next());
|
||||
put(RememberMeAuthenticationFilter.class, order.next());
|
||||
put(AnonymousAuthenticationFilter.class, order.next());
|
||||
filterToOrder.put(
|
||||
"org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter",
|
||||
order);
|
||||
order += STEP;
|
||||
put(SessionManagementFilter.class, order);
|
||||
order += STEP;
|
||||
put(ExceptionTranslationFilter.class, order);
|
||||
order += STEP;
|
||||
put(FilterSecurityInterceptor.class, order);
|
||||
order += STEP;
|
||||
put(SwitchUserFilter.class, order);
|
||||
order.next());
|
||||
put(SessionManagementFilter.class, order.next());
|
||||
put(ExceptionTranslationFilter.class, order.next());
|
||||
put(FilterSecurityInterceptor.class, order.next());
|
||||
put(SwitchUserFilter.class, order.next());
|
||||
}
|
||||
|
||||
public int compare(Filter lhs, Filter rhs) {
|
||||
@ -226,4 +196,23 @@ final class FilterComparator implements Comparator<Filter>, Serializable {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static class Step {
|
||||
|
||||
private int value;
|
||||
private final int stepSize;
|
||||
|
||||
Step(int initialValue, int stepSize) {
|
||||
this.value = initialValue;
|
||||
this.stepSize = stepSize;
|
||||
}
|
||||
|
||||
int next() {
|
||||
int value = this.value;
|
||||
this.value += this.stepSize;
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user