qiwi / qorsproxy

Yet another cors proxy
MIT License
6 stars 3 forks source link

Bug with sending multipart/form-data request, server returns 520 error code #110

Open alex1998dmit opened 8 months ago

alex1998dmit commented 8 months ago

Issue type

Expected behavior

При использовании qorsproxy и при отправке запроса multipart/form-data с екслелем запрос проксируется без ошибок

Actual behavior

При использовании qorsproxy и при отправке запроса multipart/form-data с екслелем запрос проксируется с 520 ошибкой Ответ запроса:

{
    "message": "Unreachable dest: https://......"
}

При смене версии на 2.4.19 ошибка 520 исчезает, но возникает 400 ошибка. Такой же запрос из приложения с таким же файлом проходит успешно, что наводит на мысли что парсинг меняет содержимое запроса, либо проставляет неправильные заголовки

Steps to reproduce

Запустить qorsproxy со следующей конфигурацией:

{
  "server": {
    "host": "127.0.0.1",
    "port": 8080
  },
  "rules": {
    "localhost": {
      "from": [
        "*"
      ],
      "to": [
        "kassa-test.qiwi.com",
        "kassa.dev.qiwi.tools",
        "kassa-payout-api.testing.qiwi.com"
      ],
      "interceptions": [
        {
          "req": {
            "method": "OPTIONS"
          },
          "res": {
            "status": 200
          }
        }
      ],
      "mutations": [
        {
          "direction": "to",
          "headers": [
            {
              "name": "host",
              "value": null
            },
            {
              "name": "origin",
              "value": "http://localhost"
            }
          ]
        },
        {
          "direction": "from",
          "headers": [
            {
              "name": "transfer-encoding",
              "value": null
            }
          ]
        },
        {
          "direction": "from",
          "headers": [
            {
              "name": "set-cookie",
              "value": {
                "from": "/;Domain.+;/i",
                "to": ";Domain: localhost;"
              }
            }
          ]
        }
      ]
    }
  }
}

Дернуть запрос через qorsproxy с передачей файла POST: http://localhost:8080/ BODY: file: (binary)

alex1998dmit commented 8 months ago

Добавил репозиторий с повтором ошибки - https://github.com/alex1998dmit/qorsy-problem