mirror of
https://github.com/alibaba/higress.git
synced 2026-02-06 23:21:08 +08:00
title, keywords, description
| title | keywords | description | ||
|---|---|---|---|---|
| Request Protocol Validation |
|
Configuration reference for request protocol validation plugin |
Function Description
The request-validation plugin is used to validate requests forwarded to upstream services in advance. This plugin utilizes the JSON Schema mechanism for data validation, capable of validating both the body and header data of requests.
Execution Attributes
Plugin Execution Phase: Authentication Phase
Plugin Execution Priority: 220
Configuration Fields
| Name | Data Type | Requirements | Default Value | Description |
|---|---|---|---|---|
| header_schema | object | Optional | - | Configuration for JSON Schema to validate request headers |
| body_schema | object | Optional | - | Configuration for JSON Schema to validate request body |
| rejected_code | number | Optional | 403 | HTTP status code returned when the request is rejected |
| rejected_msg | string | Optional | - | HTTP response body returned when the request is rejected |
| enable_swagger | bool | Optional | false | Configuration to enable Swagger documentation validation |
| enable_oas3 | bool | Optional | false | Configuration to enable OAS3 documentation validation |
Validation rules for header and body are the same, below is an example using body.
Configuration Examples
Enumeration (Enum) Validation
body_schema:
type: object
required:
- enum_payload
properties:
enum_payload:
type: string
enum:
- "enum_string_1"
- "enum_string_2"
default: "enum_string_1"
Boolean Validation
body_schema:
type: object
required:
- boolean_payload
properties:
boolean_payload:
type: boolean
default: true
Number Range (Number or Integer) Validation
body_schema:
type: object
required:
- integer_payload
properties:
integer_payload:
type: integer
minimum: 1
maximum: 10
String Length Validation
body_schema:
type: object
required:
- string_payload
properties:
string_payload:
type: string
minLength: 1
maxLength: 10
Regular Expression (Regex) Validation
body_schema:
type: object
required:
- regex_payload
properties:
regex_payload:
type: string
minLength: 1
maxLength: 10
pattern: "^[a-zA-Z0-9_]+$"
Array Validation
body_schema:
type: object
required:
- array_payload
properties:
array_payload:
type: array
minItems: 1
items:
type: integer
minimum: 1
maximum: 10
uniqueItems: true
default: [1, 2, 3]
Combined Validation
body_schema:
type: object
required:
- boolean_payload
- array_payload
- regex_payload
properties:
boolean_payload:
type: boolean
array_payload:
type: array
minItems: 1
items:
type: integer
minimum: 1
maximum: 10
uniqueItems: true
default: [1, 2, 3]
regex_payload:
type: string
minLength: 1
maxLength: 10
pattern: "^[a-zA-Z0-9_]+$"
Custom Rejection Message
body_schema:
type: object
required:
- boolean_payload
properties:
boolean_payload:
type: boolean
rejected_code: 403
rejected_msg: "Request rejected"