このページは、まだ日本語ではご利用いただけません。翻訳中です。
Looking for the plugin's configuration parameters? You can find them in the WebSocket Validator configuration reference doc.
Validate individual WebSocket messages against to a user-specified schema before proxying them.
Message schema can be configured by type (text or binary) and sender (client or upstream).
When an incoming message is invalid according to the schema, a close frame is
sent to the sender (status: 1007) and the peer before closing the
connection.
Usage
Note: Currently, the only supported validation type is JSON schema draft4, so all examples will use this.
At least one of the following complete message validation configurations must be defined:
-
config.client.text.typeandconfig.client.text.schema -
config.client.binary.typeandconfig.client.binary.schema -
config.upstream.text.typeandconfig.upstream.text.schema -
config.upstream.binary.typeandconfig.upstream.binary.schema
Validate client text frames
This example validates that client text frames:
- Are valid JSON
- Are a JSON object (
{}) - Have a
nameattribute (of any type)
Here’s an example sequence for this configuration:
sequenceDiagram
autonumber
activate Client
activate Kong
Client->>Kong: text(`{ "name": "Alex" }`)
activate Upstream
Kong->>Upstream: text(`{ "name": "Alex" }`)
Client->>Kong: text(`{ "name": "Kiran" }`)
Kong->>Upstream: text(`{ "name": "Kiran" }`)
Client->>Kong: text(`{ "missing_name": true }`)
Kong->>Client: close(status=1007)
Kong->>Upstream: close()
deactivate Upstream
deactivate Kong
deactivate Client