This commit is contained in:
Rossen Stoyanchev
2019-03-19 14:18:17 -04:00
parent ef11aa4583
commit f52c1fda3b
2 changed files with 28 additions and 28 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -102,7 +102,7 @@ public class InterceptorRegistration {
/**
* Specify an order position to be used. Default is 0.
* @since 5.0
* @since 4.23
*/
public InterceptorRegistration order(int order){
this.order = order;
@@ -111,13 +111,11 @@ public class InterceptorRegistration {
/**
* Return the order position to be used.
* @since 5.0
*/
protected int getOrder() {
return this.order;
}
/**
* Build the underlying interceptor. If URL patterns are provided, the returned
* type is {@link MappedInterceptor}; otherwise {@link HandlerInterceptor}.

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -154,6 +154,30 @@ public class InterceptorRegistryTests {
assertEquals(Collections.emptyList(), getInterceptorsForPath("/path1/secret"));
}
@Test
public void orderedInterceptors() {
this.registry.addInterceptor(this.interceptor1).order(Ordered.LOWEST_PRECEDENCE);
this.registry.addInterceptor(this.interceptor2).order(Ordered.HIGHEST_PRECEDENCE);
List<Object> interceptors = this.registry.getInterceptors();
assertEquals(2, interceptors.size());
assertSame(this.interceptor2, interceptors.get(0));
assertSame(this.interceptor1, interceptors.get(1));
}
@Test
public void nonOrderedInterceptors() {
this.registry.addInterceptor(this.interceptor1).order(0);
this.registry.addInterceptor(this.interceptor2).order(0);
List<Object> interceptors = this.registry.getInterceptors();
assertEquals(2, interceptors.size());
assertSame(this.interceptor1, interceptors.get(0));
assertSame(this.interceptor2, interceptors.get(1));
}
private List<HandlerInterceptor> getInterceptorsForPath(String lookupPath) {
PathMatcher pathMatcher = new AntPathMatcher();
@@ -183,6 +207,7 @@ public class InterceptorRegistryTests {
assertTrue(webInterceptor.preHandleInvoked);
}
private static class TestWebRequestInterceptor implements WebRequestInterceptor {
private boolean preHandleInvoked = false;
@@ -201,27 +226,4 @@ public class InterceptorRegistryTests {
}
}
@Test
public void orderedInterceptors() throws Exception {
this.registry.addInterceptor(this.interceptor1).order(Ordered.LOWEST_PRECEDENCE);
this.registry.addInterceptor(this.interceptor2).order(Ordered.HIGHEST_PRECEDENCE);
List<Object> interceptors = this.registry.getInterceptors();
assertEquals(2, interceptors.size());
assertSame(this.interceptor2, interceptors.get(0));
assertSame(this.interceptor1, interceptors.get(1));
}
@Test
public void nonOrderedInterceptors() throws Exception {
this.registry.addInterceptor(this.interceptor1).order(0);
this.registry.addInterceptor(this.interceptor2).order(0);
List<Object> interceptors = this.registry.getInterceptors();
assertEquals(2, interceptors.size());
assertSame(this.interceptor1, interceptors.get(0));
assertSame(this.interceptor2, interceptors.get(1));
}
}