-
Notifications
You must be signed in to change notification settings - Fork 5.3k
uhv: define extensible validation API #19752
Copy link
Copy link
Closed
Labels
area/httpenhancementFeature requests. Not bugs or questions.Feature requests. Not bugs or questions.no stalebotDisables stalebot from closing an issueDisables stalebot from closing an issue
Description
As part of the unified header validation component, Envoy will need to define an extensible API. The tech spec describes a simple API that will be initially implemented.
class HeaderValidator {
enum class HeaderEntryValidationResult { Accept, Reject };
virtual HeaderEntryValidationResult validateHeaderEntry(
const HeaderEntry& entry) PURE;
// validateRequestHeaderMap performs URI path normalization and may redirect
// request to the new URI path
enum class RequestHeaderMapValidationResult { Accept, Reject, Redirect };
virtual RequestHeaderMapValidationResult validateRequestHeaderMap(
RequestHeaderMap& header_map) PURE;
enum class ResponseHeaderMapValidationResult { Accept, Reject };
virtual ResponseHeaderMapValidationResult validateResponseHeaderMap(
ResponseHeaderMap& header_map) PURE;
};
class HeaderValidatorFactory : public Config::TypedFactory {
enum class Protocol { HTTP09, HTTP1, HTTP2, HTTP3 };
virtual std::shared_ptr<HeaderValidator> createHeaderValidator(
Protocol protocol) const PURE;
};The goal of this issue is to define the API, get feedback from the team and community, document the API, and potentially create factory stubs for the support HTTP codecs.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/httpenhancementFeature requests. Not bugs or questions.Feature requests. Not bugs or questions.no stalebotDisables stalebot from closing an issueDisables stalebot from closing an issue