Rimozione della doppia barra dalle richieste

Problema: le doppie barre in una richiesta possono impedire la risoluzione della richiesta

Le richieste che contengono due (o più) barre consecutive possono generare un errore 404. Per esempio /hello//world/. Il problema in questo esempio è "//" tra hello e world.

Soluzione: applicare un filtro per le doppie barre

Applica una configurazione all'ingress Istio per filtrare le richieste contenenti barre doppie e sostituirle.

  1. Crea un nuovo file di configurazione denominato apigee-merge-slash-filter.yaml.
  2. Incolla i contenuti seguenti nel file:
    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: apigee-merge-slashes
      namespace: istio-system
    spec:
      workloadSelector:
        labels:
          app: istio-ingressgateway
      configPatches:
      - applyTo: NETWORK_FILTER # http connection manager is a filter in Envoy
        match:
          context: GATEWAY
          listener:
            filterChain:
              filter:
                name: "envoy.http_connection_manager"
        patch:
          operation: MERGE
          value:
            typed_config:
              "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
              merge_slashes: true
  3. Applica la configurazione con il seguente comando:
    kubectl apply -f apigee-merge-slash-filter.yaml