@@ -198,7 +198,7 @@ private static StructOrError<VirtualHost> parseVirtualHost(
198198 routes .add (route .getStruct ());
199199 }
200200 StructOrError <Map <String , Filter .FilterConfig >> overrideConfigs =
201- parseOverrideFilterConfigs (proto .getTypedPerFilterConfigMap (), filterRegistry );
201+ parseOverrideFilterConfigs (proto .getTypedPerFilterConfigMap (), filterRegistry , args );
202202 if (overrideConfigs .getErrorDetail () != null ) {
203203 return StructOrError .fromError (
204204 "VirtualHost [" + proto .getName () + "] contains invalid HttpFilter config: "
@@ -210,7 +210,12 @@ private static StructOrError<VirtualHost> parseVirtualHost(
210210
211211 @ VisibleForTesting
212212 static StructOrError <Map <String , FilterConfig >> parseOverrideFilterConfigs (
213- Map <String , Any > rawFilterConfigMap , FilterRegistry filterRegistry ) {
213+ Map <String , Any > rawFilterConfigMap , FilterRegistry filterRegistry ,
214+ XdsResourceType .Args args ) {
215+ Filter .FilterContext context = Filter .FilterContext .builder ()
216+ .bootstrapInfo (args .getBootstrapInfo ())
217+ .serverInfo (args .getServerInfo ())
218+ .build ();
214219 Map <String , FilterConfig > overrideConfigs = new HashMap <>();
215220 for (String name : rawFilterConfigMap .keySet ()) {
216221 Any anyConfig = rawFilterConfigMap .get (name );
@@ -254,7 +259,7 @@ static StructOrError<Map<String, FilterConfig>> parseOverrideFilterConfigs(
254259 "HttpFilter [" + name + "](" + typeUrl + ") is required but unsupported" );
255260 }
256261 ConfigOrError <? extends Filter .FilterConfig > filterConfig =
257- provider .parseFilterConfigOverride (rawConfig );
262+ provider .parseFilterConfigOverride (rawConfig , context );
258263 if (filterConfig .errorDetail != null ) {
259264 return StructOrError .fromError (
260265 "Invalid filter config for HttpFilter [" + name + "]: " + filterConfig .errorDetail );
@@ -281,7 +286,7 @@ static StructOrError<Route> parseRoute(
281286 }
282287
283288 StructOrError <Map <String , FilterConfig >> overrideConfigsOrError =
284- parseOverrideFilterConfigs (proto .getTypedPerFilterConfigMap (), filterRegistry );
289+ parseOverrideFilterConfigs (proto .getTypedPerFilterConfigMap (), filterRegistry , args );
285290 if (overrideConfigsOrError .getErrorDetail () != null ) {
286291 return StructOrError .fromError (
287292 "Route [" + proto .getName () + "] contains invalid HttpFilter config: "
@@ -490,7 +495,7 @@ static StructOrError<RouteAction> parseRouteAction(
490495 for (io .envoyproxy .envoy .config .route .v3 .WeightedCluster .ClusterWeight clusterWeight
491496 : clusterWeights ) {
492497 StructOrError <ClusterWeight > clusterWeightOrError =
493- parseClusterWeight (clusterWeight , filterRegistry );
498+ parseClusterWeight (clusterWeight , filterRegistry , args );
494499 if (clusterWeightOrError .getErrorDetail () != null ) {
495500 return StructOrError .fromError ("RouteAction contains invalid ClusterWeight: "
496501 + clusterWeightOrError .getErrorDetail ());
@@ -599,9 +604,9 @@ private static StructOrError<VirtualHost.Route.RouteAction.RetryPolicy> parseRet
599604 @ VisibleForTesting
600605 static StructOrError <VirtualHost .Route .RouteAction .ClusterWeight > parseClusterWeight (
601606 io .envoyproxy .envoy .config .route .v3 .WeightedCluster .ClusterWeight proto ,
602- FilterRegistry filterRegistry ) {
607+ FilterRegistry filterRegistry , XdsResourceType . Args args ) {
603608 StructOrError <Map <String , Filter .FilterConfig >> overrideConfigs =
604- parseOverrideFilterConfigs (proto .getTypedPerFilterConfigMap (), filterRegistry );
609+ parseOverrideFilterConfigs (proto .getTypedPerFilterConfigMap (), filterRegistry , args );
605610 if (overrideConfigs .getErrorDetail () != null ) {
606611 return StructOrError .fromError (
607612 "ClusterWeight [" + proto .getName () + "] contains invalid HttpFilter config: "
0 commit comments