mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-03-03 20:09:18 +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")
|
@SuppressWarnings("serial")
|
||||||
final class FilterComparator implements Comparator<Filter>, Serializable {
|
final class FilterComparator implements Comparator<Filter>, Serializable {
|
||||||
private static final int STEP = 100;
|
private static final int INITIAL_ORDER = 100;
|
||||||
private Map<String, Integer> filterToOrder = new HashMap<>();
|
private static final int ORDER_STEP = 100;
|
||||||
|
private final Map<String, Integer> filterToOrder = new HashMap<>();
|
||||||
|
|
||||||
FilterComparator() {
|
FilterComparator() {
|
||||||
int order = 100;
|
Step order = new Step(INITIAL_ORDER, ORDER_STEP);
|
||||||
put(ChannelProcessingFilter.class, order);
|
put(ChannelProcessingFilter.class, order.next());
|
||||||
order += STEP;
|
put(ConcurrentSessionFilter.class, order.next());
|
||||||
put(ConcurrentSessionFilter.class, order);
|
put(WebAsyncManagerIntegrationFilter.class, order.next());
|
||||||
order += STEP;
|
put(SecurityContextPersistenceFilter.class, order.next());
|
||||||
put(WebAsyncManagerIntegrationFilter.class, order);
|
put(HeaderWriterFilter.class, order.next());
|
||||||
order += STEP;
|
put(CorsFilter.class, order.next());
|
||||||
put(SecurityContextPersistenceFilter.class, order);
|
put(CsrfFilter.class, order.next());
|
||||||
order += STEP;
|
put(LogoutFilter.class, order.next());
|
||||||
put(HeaderWriterFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
put(CorsFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
put(CsrfFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
put(LogoutFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
filterToOrder.put(
|
filterToOrder.put(
|
||||||
"org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter",
|
"org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter",
|
||||||
order);
|
order.next());
|
||||||
order += STEP;
|
put(X509AuthenticationFilter.class, order.next());
|
||||||
put(X509AuthenticationFilter.class, order);
|
put(AbstractPreAuthenticatedProcessingFilter.class, order.next());
|
||||||
order += STEP;
|
|
||||||
put(AbstractPreAuthenticatedProcessingFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
filterToOrder.put("org.springframework.security.cas.web.CasAuthenticationFilter",
|
filterToOrder.put("org.springframework.security.cas.web.CasAuthenticationFilter",
|
||||||
order);
|
order.next());
|
||||||
order += STEP;
|
|
||||||
filterToOrder.put(
|
filterToOrder.put(
|
||||||
"org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter",
|
"org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter",
|
||||||
order);
|
order.next());
|
||||||
order += STEP;
|
put(UsernamePasswordAuthenticationFilter.class, order.next());
|
||||||
put(UsernamePasswordAuthenticationFilter.class, order);
|
put(ConcurrentSessionFilter.class, order.next());
|
||||||
order += STEP;
|
|
||||||
put(ConcurrentSessionFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
filterToOrder.put(
|
filterToOrder.put(
|
||||||
"org.springframework.security.openid.OpenIDAuthenticationFilter", order);
|
"org.springframework.security.openid.OpenIDAuthenticationFilter", order.next());
|
||||||
order += STEP;
|
put(DefaultLoginPageGeneratingFilter.class, order.next());
|
||||||
put(DefaultLoginPageGeneratingFilter.class, order);
|
put(DefaultLogoutPageGeneratingFilter.class, order.next());
|
||||||
order += STEP;
|
put(ConcurrentSessionFilter.class, order.next());
|
||||||
put(DefaultLogoutPageGeneratingFilter.class, order);
|
put(DigestAuthenticationFilter.class, order.next());
|
||||||
order += STEP;
|
|
||||||
put(ConcurrentSessionFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
put(DigestAuthenticationFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
filterToOrder.put(
|
filterToOrder.put(
|
||||||
"org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter", order);
|
"org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter", order.next());
|
||||||
order += STEP;
|
put(BasicAuthenticationFilter.class, order.next());
|
||||||
put(BasicAuthenticationFilter.class, order);
|
put(RequestCacheAwareFilter.class, order.next());
|
||||||
order += STEP;
|
put(SecurityContextHolderAwareRequestFilter.class, order.next());
|
||||||
put(RequestCacheAwareFilter.class, order);
|
put(JaasApiIntegrationFilter.class, order.next());
|
||||||
order += STEP;
|
put(RememberMeAuthenticationFilter.class, order.next());
|
||||||
put(SecurityContextHolderAwareRequestFilter.class, order);
|
put(AnonymousAuthenticationFilter.class, order.next());
|
||||||
order += STEP;
|
|
||||||
put(JaasApiIntegrationFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
put(RememberMeAuthenticationFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
put(AnonymousAuthenticationFilter.class, order);
|
|
||||||
order += STEP;
|
|
||||||
filterToOrder.put(
|
filterToOrder.put(
|
||||||
"org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter",
|
"org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter",
|
||||||
order);
|
order.next());
|
||||||
order += STEP;
|
put(SessionManagementFilter.class, order.next());
|
||||||
put(SessionManagementFilter.class, order);
|
put(ExceptionTranslationFilter.class, order.next());
|
||||||
order += STEP;
|
put(FilterSecurityInterceptor.class, order.next());
|
||||||
put(ExceptionTranslationFilter.class, order);
|
put(SwitchUserFilter.class, order.next());
|
||||||
order += STEP;
|
|
||||||
put(FilterSecurityInterceptor.class, order);
|
|
||||||
order += STEP;
|
|
||||||
put(SwitchUserFilter.class, order);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compare(Filter lhs, Filter rhs) {
|
public int compare(Filter lhs, Filter rhs) {
|
||||||
@ -226,4 +196,23 @@ final class FilterComparator implements Comparator<Filter>, Serializable {
|
|||||||
}
|
}
|
||||||
return null;
|
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