From 81303f718122658ddc81d47449df9daa41ee8055 Mon Sep 17 00:00:00 2001 From: Yujia Qiao Date: Mon, 17 Jan 2022 16:53:02 +0800 Subject: [PATCH] fix: deny unknown fields for config (#105) --- src/config.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/config.rs b/src/config.rs index 3ab17d7..7304e42 100644 --- a/src/config.rs +++ b/src/config.rs @@ -23,6 +23,7 @@ impl Default for TransportType { } #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)] +#[serde(deny_unknown_fields)] pub struct ClientServiceConfig { #[serde(rename = "type", default = "default_service_type")] pub service_type: ServiceType, @@ -61,6 +62,7 @@ fn default_service_type() -> ServiceType { } #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)] +#[serde(deny_unknown_fields)] pub struct ServerServiceConfig { #[serde(rename = "type", default = "default_service_type")] pub service_type: ServiceType, @@ -80,6 +82,7 @@ impl ServerServiceConfig { } } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[serde(deny_unknown_fields)] pub struct TlsConfig { pub hostname: Option, pub trusted_root: Option, @@ -92,6 +95,7 @@ fn default_noise_pattern() -> String { } #[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] +#[serde(deny_unknown_fields)] pub struct NoiseConfig { #[serde(default = "default_noise_pattern")] pub pattern: String, @@ -113,6 +117,7 @@ fn default_keepalive_interval() -> u64 { } #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] +#[serde(deny_unknown_fields)] pub struct TransportConfig { #[serde(rename = "type")] pub transport_type: TransportType, @@ -144,6 +149,7 @@ fn default_transport() -> TransportConfig { } #[derive(Debug, Serialize, Deserialize, Default, PartialEq, Clone)] +#[serde(deny_unknown_fields)] pub struct ClientConfig { pub remote_addr: String, pub default_token: Option, @@ -153,6 +159,7 @@ pub struct ClientConfig { } #[derive(Debug, Serialize, Deserialize, Default, PartialEq, Clone)] +#[serde(deny_unknown_fields)] pub struct ServerConfig { pub bind_addr: String, pub default_token: Option,