This repository contains a demo application written in Go that demonstrates the usage of Envoy's External Processor (ExtProc) filter to do allow and block ip address(es)
for HTTP request.
The Envoy ExtProc filter allows you to offload request processing logic to an external process, enabling you to customize and extend Envoy's functionality. This demo application showcases how to implement an ExtProc filter in Go.
- Integration with Envoy's External Processor filter
- Customizable request processing logic
- Demonstrates handling of HTTP requests in Go
- Simple and easy-to-understand codebase
To get started with the demo application, follow these steps:
-
Clone the repository:
git clone https://github.com/projectsesame/envoy-extproc-allowandblock-demo-go.git
-
Build the Go application:
go build .
-
Run the application:
NOTE: only one of --allowlist and --blocklist can be specified.
./envoy-extproc-allowandblock-demo-go allow-and-block --log-stream --log-phases --allowlist "192.168.1.2,192.168.1.3"
OR
./envoy-extproc-allowandblock-demo-go allow-and-block --log-stream --log-phases --blocklist "192.168.1.2,192.168.1.3"
The demo application listens for incoming GRPC requests on a specified port and performs custom processing logic. You can modify the processing logic in the application code according to your requirements.
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request. License
This project is licensed under the Apache License Version 2.0. See the LICENSE file for details. Acknowledgements
This demo application is based on the ExtProc filter demo(s) provided by envoy-extproc-sdk-go. please visit it for more demos.
Special thanks to the community for their contributions and support.
For any questions or inquiries, please feel free to reach out to us for any assistance or feedback.