Экстракторы#

Экстрактор из заголовка#

Данный экстрактор сохраняет в контекст значения из заголовков в соответствии с указанным маппингом.

{
  "type": "headers-extractor",
  "mapping": [
    {
      "source": "X-Username",
      "target": "userId",
      "required": true, // Обязательный или опциональный параметр. По умолчанию true
    },
    {
      "source": "X-Password",
      "target": "password",
      "encoding": "BASE64" // PLAIN or BASE64
    }
  ]
}

Экстрактор из OAuth-маркера#

Данный экстрактор сохраняет в контекст значения атрибутов пользователя, полученных через интроспекцию OAUTH-маркера, в соответствии с указанным маппингом. При отсутствии в запросе маркера или идентификатора пользователя sub в маркере обработчик вернет ответ HTTP 401 Forbidden.

{
  "type": "o-auth-token-extractor",
  "mapping": [
    {
      "source": "name",
      "target": "name",
      "required": true, // Обязательный или опциональный параметр. По умолчанию true
    },
    {
      "source": "org",
      "target": "workplace",
      "required": false
    },
    {
      "source": "key",
      "target": "key",
      "encoding": "BASE64" // PLAIN or BASE64
    }
  ]
}

Экстрактор параметров get-запроса#

Данный экстрактор сохраняет в контекст значения параметров GET-запроса в соответствии с указанным маппингом.

{
  "type": "get-params-extractor",
  // Режим работы экстрактора: STRICT или LENIENT
  // В режиме STRICT экстрактор возвращает ошибку, если в запросе есть параметры, не указанные в маппинге
  // По умолчанию STRICT
  "mode": "STRICT",
  "mapping": [
    {
      "source": "id",
      "target": "userId",
      "required": true, // Обязательный или опциональный параметр. По умолчанию true
    },
    {
      "source": "orgId",
      "target": "orgId",
      "required": false
    }
  ]
}

Экстрактор параметров post-запроса#

Данный экстрактор сохраняет в контекст значения параметров POST-запроса с содержимым application/x-www-form-urlencoded в соответствии с указанным маппингом. Если у содержимого запроса другой тип, экстрактор вернет ошибку.

{
  "type": "post-params-extractor",
  // Режим работы экстрактора: STRICT или LENIENT
  // В режиме STRICT экстрактор возвращает ошибку, если в запросе есть параметры, не указанные в маппинге
  // По умолчанию STRICT
  "mode": "STRICT",
  "mapping": [
    {
      "source": "id",
      "target": "userId",
      "required": true, // Обязательный или опциональный параметр. По умолчанию true
    },
    {
      "source": "orgId",
      "target": "orgId",
      "required": false
    }
  ]
}

Экстрактор параметров из пути запроса#

Данный экстрактор сохраняет в контекст значения из пути запроса в соответствии с заданным шаблоном.

Синтаксис:

  • * - любое значение сегмента пути

  • ${varName} - значение сегмента будет сохранено в контекст с ключом varName

  • ** - произвольное количество сегментов пути от 1 и более. Может использоваться только в конце шаблона

  • В остальных случаях значение из шаблона будет сравниваться со значением сегмента на строгое равенство (константа)

{
  // api - любое значение - users - сохранение с ключом operation - любое число сегментов
  "template": "/api/*/users/${operation}/**"
}