Skip to content

Commit 7b0de1a

Browse files
committed
Disallow non-GRPC processing mode for request and response messages, in the filter config update.
1 parent 90d80e0 commit 7b0de1a

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

xds/src/main/java/io/grpc/xds/ExternalProcessorFilter.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.envoyproxy.envoy.config.core.v3.GrpcService;
1111
import io.envoyproxy.envoy.config.core.v3.HeaderValueOption;
1212
import io.envoyproxy.envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor;
13+
import io.envoyproxy.envoy.extensions.filters.http.ext_proc.v3.ProcessingMode;
1314
import io.envoyproxy.envoy.service.ext_proc.v3.ExternalProcessorGrpc;
1415
import io.envoyproxy.envoy.service.ext_proc.v3.ProcessingRequest;
1516
import io.envoyproxy.envoy.service.ext_proc.v3.ProcessingResponse;
@@ -75,6 +76,15 @@ public ConfigOrError<ExternalProcessorFilterConfig> parseFilterConfig(Message ra
7576
} catch (InvalidProtocolBufferException e) {
7677
return ConfigOrError.fromError("Invalid proto: " + e);
7778
}
79+
80+
ProcessingMode mode = externalProcessor.getProcessingMode();
81+
if (mode.getRequestBodyMode() != ProcessingMode.BodySendMode.GRPC) {
82+
return ConfigOrError.fromError("Invalid request_body_mode: " + mode.getRequestBodyMode() + ". Only GRPC is supported.");
83+
}
84+
if (mode.getResponseBodyMode() != ProcessingMode.BodySendMode.GRPC) {
85+
return ConfigOrError.fromError("Invalid response_body_mode: " + mode.getResponseBodyMode() + ". Only GRPC is supported.");
86+
}
87+
7888
return ConfigOrError.fromConfig(new ExternalProcessorFilterConfig(externalProcessor));
7989
}
8090

0 commit comments

Comments
 (0)