fix: deny unknown fields for config (#105)

This commit is contained in:
Yujia Qiao 2022-01-17 16:53:02 +08:00 committed by GitHub
parent 907109984f
commit 81303f7181
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 0 deletions

View File

@ -23,6 +23,7 @@ impl Default for TransportType {
} }
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)] #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
#[serde(deny_unknown_fields)]
pub struct ClientServiceConfig { pub struct ClientServiceConfig {
#[serde(rename = "type", default = "default_service_type")] #[serde(rename = "type", default = "default_service_type")]
pub service_type: ServiceType, pub service_type: ServiceType,
@ -61,6 +62,7 @@ fn default_service_type() -> ServiceType {
} }
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)] #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
#[serde(deny_unknown_fields)]
pub struct ServerServiceConfig { pub struct ServerServiceConfig {
#[serde(rename = "type", default = "default_service_type")] #[serde(rename = "type", default = "default_service_type")]
pub service_type: ServiceType, pub service_type: ServiceType,
@ -80,6 +82,7 @@ impl ServerServiceConfig {
} }
} }
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct TlsConfig { pub struct TlsConfig {
pub hostname: Option<String>, pub hostname: Option<String>,
pub trusted_root: Option<String>, pub trusted_root: Option<String>,
@ -92,6 +95,7 @@ fn default_noise_pattern() -> String {
} }
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] #[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct NoiseConfig { pub struct NoiseConfig {
#[serde(default = "default_noise_pattern")] #[serde(default = "default_noise_pattern")]
pub pattern: String, pub pattern: String,
@ -113,6 +117,7 @@ fn default_keepalive_interval() -> u64 {
} }
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
#[serde(deny_unknown_fields)]
pub struct TransportConfig { pub struct TransportConfig {
#[serde(rename = "type")] #[serde(rename = "type")]
pub transport_type: TransportType, pub transport_type: TransportType,
@ -144,6 +149,7 @@ fn default_transport() -> TransportConfig {
} }
#[derive(Debug, Serialize, Deserialize, Default, PartialEq, Clone)] #[derive(Debug, Serialize, Deserialize, Default, PartialEq, Clone)]
#[serde(deny_unknown_fields)]
pub struct ClientConfig { pub struct ClientConfig {
pub remote_addr: String, pub remote_addr: String,
pub default_token: Option<String>, pub default_token: Option<String>,
@ -153,6 +159,7 @@ pub struct ClientConfig {
} }
#[derive(Debug, Serialize, Deserialize, Default, PartialEq, Clone)] #[derive(Debug, Serialize, Deserialize, Default, PartialEq, Clone)]
#[serde(deny_unknown_fields)]
pub struct ServerConfig { pub struct ServerConfig {
pub bind_addr: String, pub bind_addr: String,
pub default_token: Option<String>, pub default_token: Option<String>,