Валидация по WSDL/XSD схеме (deprecated)#

Примечание

Данный механизм не рекомендован к использованию в SOWA. В качестве альтернативы рекомендуется использовать действие XsdValidation.

При использовании xsd валидации в сервисах типа WebSocket требуется пользоваться параметрами request_schema и response_schema.

Совместное использование валидаторов и цепочек: данный механизм предполагает монопольное право на работу с контекстом запроса или ответа. В связи с этим, одновременная работа валидаторов (validators) и цепочек (chains) запрещена на уровне конфигурации, хотя и технически возможна в случае имплементации на разных фазах.

validator_xsd - параметры#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

request

Опциональный

Параметры, используемые для валидации запроса по схеме

Параметры, описанные в разделе «validator_xsd - request»

—

request_limits

Опциональный

Ограничения на parsing xml запроса

Параметры, описанные в разделе «validator_xsd - limits»

—

response

Опциональный

Параметры, используемые для валидации ответа по схеме

Параметры, описанные в разделе «validator_xsd - response»

—

response_limits

Опциональный

Ограничения на parsing xml ответа

Параметры, описанные в разделе «validator_xsd - limits»

—

action_when_no_rule

Опциональный

Решение валидатора, если не обнаружено подходящего правила для валидации сообщения

deny — сообщение блокируется; ignore — сообщение пропускается

deny

validator_xsd - request#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

schema

Обязательный

Путь к файлу схемы, с помощью которой происходит валидация

Строковое значение

—

url

Опциональный

Соотнесение схемы валидации xml-объекта и адрес, по которому был отправлен запрос. Регулярное выражение. При использовании символов { } [ ] \ . необходимо их экранирование

Строковое значение

—

method

Опциональный

Соотнесение схемы валидации xml-объекта и метод запроса

post, put, delete, patch

—

params

Опциональный

Условие для вызова валидатора

Параметры, описанные в разделе «validator_xsd - params»

—

transforms

Опциональный

Преобразователь тела запроса для последующей валидации

Последовательность: Base64Decode, ASN1ContentExtractor

—

wsdl

Опциональный

Флаг, включающий генерацию xsd-схемы на основе указанной в schema

true, false

false

default_wsdl_style

Опциональный

Стиль wsdl документа, используемый по умолчанию, если в документе стиль явно не прописан

document, rpc

document

validator_xsd - response#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

schema

Обязательный

Путь к файлу схемы для валидации ответа

Строковое значение

—

url

Опциональный

Соотнесение схемы валидации и адрес, по которому был отправлен запрос

Строковое значение

—

method

Опциональный

Соотнесение схемы валидации и метод запроса

get, post, put, delete, patch

—

params

Опциональный

Условие для вызова валидатора

Параметры, описанные в разделе «validator_xsd - params»

—

transforms

Опциональный

Преобразователь тела ответа для последующей валидации

Последовательность: Base64Decode, ASN1ContentExtractor

—

response_code

Опциональный

Схема валидации применяется только для ответов, удовлетворяющих комбинации оператора и паттерна

Параметры, описанные в разделе «validator_xsd - response_code»

—

wsdl

Опциональный

Флаг, включающий генерацию xsd-схемы на основе указанной в schema

true, false

false

default_wsdl_style

Опциональный

Стиль wsdl документа, используемый по умолчанию, если в документе стиль явно не прописан

document, rpc

document

validator_xsd - params#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

name

Обязательный

Имя аргумента

Текстовое значение

—

operator

Обязательный

Операция для аргумента

= — посимвольное равенство; != — посимвольное неравенство; ~ — регулярное выражение с учетом регистра; ~* — регулярное выражение без учета регистра; !~ — негативное регулярное выражение с учетом регистра; !~* — негативное регулярное выражение без учета регистра

—

pattern

Обязательный

Паттерн, применяемый к аргументу

Текстовое значение

—

validator_xsd - response_code#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

operator

Обязательный

Операция для аргумента

= — посимвольное равенство; != — посимвольное неравенство; ~ — регулярное выражение с учетом регистра; ~* — регулярное выражение без учета регистра; !~ — негативное регулярное выражение с учетом регистра; !~* — негативное регулярное выражение без учета регистра

—

pattern

Обязательный

Паттерн, применяемый к статус коду ответа

Текстовое значение

—

validator_xsd - limits#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

entityExpansionLimit

Опциональный

Ограничение по количеству расширений сущностей

Целочисленное значение

64000

elementAttributeLimit

Опциональный

Ограничение по количеству атрибутов, которые может содержать элемент

Целочисленное значение

10000

maxOccurLimit

Опциональный

Ограничение по числу узлов модели содержимого при построении грамматики для xml-схемы W3C с атрибутами maxOccurs, отличными от «неограниченного»

Целочисленное значение

5000

totalEntitySizeLimit

Опциональный

Ограничение по общему размеру всех сущностей (общих и параметрических)

Целочисленное значение

50000000

maxGeneralEntitySizeLimit

Опциональный

Ограничение максимального размера любых общих объектов

Целочисленное значение

0

maxParameterEntitySizeLimit

Опциональный

Ограничение максимального размера любых параметрических объектов, включая результат вложения нескольких параметрических объектов

Целочисленное значение

1000000

entityReplacementLimit

Опциональный

Ограничение по общему количеству узлов во всех ссылках сущности

Целочисленное значение

3000000

maxElementDepth

Опциональный

Максимальная глубина элемента

Целочисленное значение

0

maxXMLNameLimit

Опциональный

Максимальный размер имен xml (имя элемента, имя атрибута, префикс пространства имен и uri)

Целочисленное значение

1000

Пример использования xsd валидатора, с указанием расположения xsd схемы:

validators:
  validator_xsd:
    request:
      - schema: xsd/soapenvelope.xsd
    response:
      - schema: xsd/soapenvelope.xsd

Пример использования xsd валидатора, с указанием расположения wsdl схемы:

validators:
  validator_xsd:
    request:
      - schema: wsdl/schema_req.wsdl
        wsdl: true
    response:
      - schema: wsdl/schema_resp.wsdl
        wsdl: true
         response_code:
           operator: "!~"
           pattern: "(?:500|502)"