Просмотр исходного кода

Delete SecurityWebFilterChain in favor of DefaultWebFilterChain

Fixesh gh-4393
Rob Winch 8 лет назад
Родитель
Сommit
2deb1cda9f

+ 3 - 23
webflux/src/main/java/org/springframework/security/web/server/WebFilterChainFilter.java

@@ -24,6 +24,8 @@ import org.springframework.web.server.ServerWebExchange;
 import org.springframework.web.server.WebFilter;
 import org.springframework.web.server.WebFilter;
 import org.springframework.web.server.WebFilterChain;
 import org.springframework.web.server.WebFilterChain;
 
 
+import org.springframework.web.server.handler.DefaultWebFilterChain;
+import org.springframework.web.server.handler.FilteringWebHandler;
 import reactor.core.publisher.Mono;
 import reactor.core.publisher.Mono;
 
 
 /**
 /**
@@ -40,29 +42,7 @@ public class WebFilterChainFilter implements WebFilter {
 
 
 	@Override
 	@Override
 	public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
 	public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
-		SecurityWebFilterChain delegate = new SecurityWebFilterChain(chain, filters.iterator());
+		DefaultWebFilterChain delegate = new DefaultWebFilterChain(new FilteringWebHandler(e -> chain.filter(e), filters));
 		return delegate.filter(exchange);
 		return delegate.filter(exchange);
 	}
 	}
-
-	static class SecurityWebFilterChain implements WebFilterChain {
-		private final WebFilterChain delegate;
-		private final Iterator<WebFilter> filters;
-
-		public SecurityWebFilterChain(WebFilterChain delegate, Iterator<WebFilter> filters) {
-			super();
-			this.delegate = delegate;
-			this.filters = filters;
-		}
-
-		@Override
-		public Mono<Void> filter(ServerWebExchange exchange) {
-			if (filters.hasNext()) {
-				WebFilter filter = filters.next();
-				return filter.filter(exchange, this);
-			} else {
-				return delegate.filter(exchange);
-			}
-		}
-
-	}
 }
 }