Class HeaderValidatorConfig.UriPathNormalizationOptions.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
io.envoyproxy.envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.UriPathNormalizationOptions.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, HeaderValidatorConfig.UriPathNormalizationOptionsOrBuilder, Cloneable
Enclosing class:
HeaderValidatorConfig.UriPathNormalizationOptions

public static final class HeaderValidatorConfig.UriPathNormalizationOptions.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder> implements HeaderValidatorConfig.UriPathNormalizationOptionsOrBuilder
 Configuration options for URI path normalization and transformation.

 These options control how Envoy processes and normalizes incoming request URI paths
 to ensure consistent behavior and security. Path normalization helps prevent
 path traversal attacks and ensures that equivalent paths are handled consistently.
 
Protobuf type envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.UriPathNormalizationOptions
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • clear

      Specified by:
      clear in interface com.google.protobuf.Message.Builder
      Specified by:
      clear in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • getDefaultInstanceForType

      public HeaderValidatorConfig.UriPathNormalizationOptions getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
    • build

      Specified by:
      build in interface com.google.protobuf.Message.Builder
      Specified by:
      build in interface com.google.protobuf.MessageLite.Builder
    • buildPartial

      Specified by:
      buildPartial in interface com.google.protobuf.Message.Builder
      Specified by:
      buildPartial in interface com.google.protobuf.MessageLite.Builder
    • clone

      Specified by:
      clone in interface com.google.protobuf.Message.Builder
      Specified by:
      clone in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • setField

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      setField in interface com.google.protobuf.Message.Builder
      Overrides:
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • clearField

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      Specified by:
      clearField in interface com.google.protobuf.Message.Builder
      Overrides:
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • clearOneof

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      Specified by:
      clearOneof in interface com.google.protobuf.Message.Builder
      Overrides:
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • setRepeatedField

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value)
      Specified by:
      setRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • addRepeatedField

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      addRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • mergeFrom

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder mergeFrom(com.google.protobuf.Message other)
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • mergeFrom

    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • mergeFrom

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Specified by:
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
      Throws:
      IOException
    • getSkipPathNormalization

      public boolean getSkipPathNormalization()
       Should paths be normalized according to RFC 3986?
      
       This operation overwrites the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
       Envoy will respond with 400 to requests with malformed paths that fail path normalization.
       The default behavior is to normalize the path.
      
       This value may be overridden by the runtime variable
       :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`.
       See `Normalization and Comparison <https://datatracker.ietf.org/doc/html/rfc3986#section-6>`_
       for details of normalization.
      
       .. note::
      
         Envoy does not perform
         `case normalization <https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2.1>`_.
         URI path normalization can be applied to a portion of requests by setting the
         ``envoy_default_header_validator.path_normalization`` runtime value.
       
      bool skip_path_normalization = 1;
      Specified by:
      getSkipPathNormalization in interface HeaderValidatorConfig.UriPathNormalizationOptionsOrBuilder
      Returns:
      The skipPathNormalization.
    • setSkipPathNormalization

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder setSkipPathNormalization(boolean value)
       Should paths be normalized according to RFC 3986?
      
       This operation overwrites the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
       Envoy will respond with 400 to requests with malformed paths that fail path normalization.
       The default behavior is to normalize the path.
      
       This value may be overridden by the runtime variable
       :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`.
       See `Normalization and Comparison <https://datatracker.ietf.org/doc/html/rfc3986#section-6>`_
       for details of normalization.
      
       .. note::
      
         Envoy does not perform
         `case normalization <https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2.1>`_.
         URI path normalization can be applied to a portion of requests by setting the
         ``envoy_default_header_validator.path_normalization`` runtime value.
       
      bool skip_path_normalization = 1;
      Parameters:
      value - The skipPathNormalization to set.
      Returns:
      This builder for chaining.
    • clearSkipPathNormalization

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder clearSkipPathNormalization()
       Should paths be normalized according to RFC 3986?
      
       This operation overwrites the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
       Envoy will respond with 400 to requests with malformed paths that fail path normalization.
       The default behavior is to normalize the path.
      
       This value may be overridden by the runtime variable
       :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`.
       See `Normalization and Comparison <https://datatracker.ietf.org/doc/html/rfc3986#section-6>`_
       for details of normalization.
      
       .. note::
      
         Envoy does not perform
         `case normalization <https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2.1>`_.
         URI path normalization can be applied to a portion of requests by setting the
         ``envoy_default_header_validator.path_normalization`` runtime value.
       
      bool skip_path_normalization = 1;
      Returns:
      This builder for chaining.
    • getSkipMergingSlashes

      public boolean getSkipMergingSlashes()
       Determines if adjacent slashes in the path are merged into one.
      
       This operation overwrites the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
       Setting this option to ``true`` will cause incoming requests with path ``//dir///file`` to not match against
       route with ``prefix`` match set to ``/dir``. Defaults to ``false``.
      
       .. note::
      
         Slash merging is not part of the
         `HTTP spec <https://datatracker.ietf.org/doc/html/rfc3986>`_ and is provided for convenience.
         Merging of slashes in URI path can be applied to a portion of requests by setting the
         ``envoy_default_header_validator.merge_slashes`` runtime value.
       
      bool skip_merging_slashes = 2;
      Specified by:
      getSkipMergingSlashes in interface HeaderValidatorConfig.UriPathNormalizationOptionsOrBuilder
      Returns:
      The skipMergingSlashes.
    • setSkipMergingSlashes

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder setSkipMergingSlashes(boolean value)
       Determines if adjacent slashes in the path are merged into one.
      
       This operation overwrites the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
       Setting this option to ``true`` will cause incoming requests with path ``//dir///file`` to not match against
       route with ``prefix`` match set to ``/dir``. Defaults to ``false``.
      
       .. note::
      
         Slash merging is not part of the
         `HTTP spec <https://datatracker.ietf.org/doc/html/rfc3986>`_ and is provided for convenience.
         Merging of slashes in URI path can be applied to a portion of requests by setting the
         ``envoy_default_header_validator.merge_slashes`` runtime value.
       
      bool skip_merging_slashes = 2;
      Parameters:
      value - The skipMergingSlashes to set.
      Returns:
      This builder for chaining.
    • clearSkipMergingSlashes

       Determines if adjacent slashes in the path are merged into one.
      
       This operation overwrites the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
       Setting this option to ``true`` will cause incoming requests with path ``//dir///file`` to not match against
       route with ``prefix`` match set to ``/dir``. Defaults to ``false``.
      
       .. note::
      
         Slash merging is not part of the
         `HTTP spec <https://datatracker.ietf.org/doc/html/rfc3986>`_ and is provided for convenience.
         Merging of slashes in URI path can be applied to a portion of requests by setting the
         ``envoy_default_header_validator.merge_slashes`` runtime value.
       
      bool skip_merging_slashes = 2;
      Returns:
      This builder for chaining.
    • getPathWithEscapedSlashesActionValue

      public int getPathWithEscapedSlashesActionValue()
       The action to take when request URL path contains escaped slash sequences (``%2F``, ``%2f``, ``%5C`` and ``%5c``).
      
       This operation may overwrite the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
      
       The handling of escaped slashes is important for security as these sequences can be used
       in path confusion attacks to bypass access controls.
       
      .envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.UriPathNormalizationOptions.PathWithEscapedSlashesAction path_with_escaped_slashes_action = 3 [(.validate.rules) = { ... }
      Specified by:
      getPathWithEscapedSlashesActionValue in interface HeaderValidatorConfig.UriPathNormalizationOptionsOrBuilder
      Returns:
      The enum numeric value on the wire for pathWithEscapedSlashesAction.
    • setPathWithEscapedSlashesActionValue

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder setPathWithEscapedSlashesActionValue(int value)
       The action to take when request URL path contains escaped slash sequences (``%2F``, ``%2f``, ``%5C`` and ``%5c``).
      
       This operation may overwrite the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
      
       The handling of escaped slashes is important for security as these sequences can be used
       in path confusion attacks to bypass access controls.
       
      .envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.UriPathNormalizationOptions.PathWithEscapedSlashesAction path_with_escaped_slashes_action = 3 [(.validate.rules) = { ... }
      Parameters:
      value - The enum numeric value on the wire for pathWithEscapedSlashesAction to set.
      Returns:
      This builder for chaining.
    • getPathWithEscapedSlashesAction

       The action to take when request URL path contains escaped slash sequences (``%2F``, ``%2f``, ``%5C`` and ``%5c``).
      
       This operation may overwrite the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
      
       The handling of escaped slashes is important for security as these sequences can be used
       in path confusion attacks to bypass access controls.
       
      .envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.UriPathNormalizationOptions.PathWithEscapedSlashesAction path_with_escaped_slashes_action = 3 [(.validate.rules) = { ... }
      Specified by:
      getPathWithEscapedSlashesAction in interface HeaderValidatorConfig.UriPathNormalizationOptionsOrBuilder
      Returns:
      The pathWithEscapedSlashesAction.
    • setPathWithEscapedSlashesAction

       The action to take when request URL path contains escaped slash sequences (``%2F``, ``%2f``, ``%5C`` and ``%5c``).
      
       This operation may overwrite the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
      
       The handling of escaped slashes is important for security as these sequences can be used
       in path confusion attacks to bypass access controls.
       
      .envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.UriPathNormalizationOptions.PathWithEscapedSlashesAction path_with_escaped_slashes_action = 3 [(.validate.rules) = { ... }
      Parameters:
      value - The pathWithEscapedSlashesAction to set.
      Returns:
      This builder for chaining.
    • clearPathWithEscapedSlashesAction

      public HeaderValidatorConfig.UriPathNormalizationOptions.Builder clearPathWithEscapedSlashesAction()
       The action to take when request URL path contains escaped slash sequences (``%2F``, ``%2f``, ``%5C`` and ``%5c``).
      
       This operation may overwrite the original request URI path and the new path is used for processing of
       the request by HTTP filters and proxied to the upstream service.
      
       The handling of escaped slashes is important for security as these sequences can be used
       in path confusion attacks to bypass access controls.
       
      .envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig.UriPathNormalizationOptions.PathWithEscapedSlashesAction path_with_escaped_slashes_action = 3 [(.validate.rules) = { ... }
      Returns:
      This builder for chaining.
    • setUnknownFields

      public final HeaderValidatorConfig.UriPathNormalizationOptions.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      setUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>
    • mergeUnknownFields

      public final HeaderValidatorConfig.UriPathNormalizationOptions.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<HeaderValidatorConfig.UriPathNormalizationOptions.Builder>