diff --git a/resources/dscecho/src/echo.rs b/resources/dscecho/src/echo.rs index f91eca84f..01540d311 100644 --- a/resources/dscecho/src/echo.rs +++ b/resources/dscecho/src/echo.rs @@ -3,7 +3,7 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use serde_json::Value; +use serde_json::{Map, Value}; #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] #[serde(untagged)] @@ -22,7 +22,9 @@ pub enum Output { String(String), // Object has to be last so it doesn't get matched first #[serde(rename = "object")] - Object(Value), + Object(Map), + #[serde(rename = "null")] + Null, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] @@ -36,7 +38,7 @@ pub struct SecureString { #[serde(deny_unknown_fields)] pub struct SecureObject { #[serde(rename = "secureObject")] - pub secure_object: Value, + pub secure_object: Map, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] diff --git a/resources/dscecho/src/main.rs b/resources/dscecho/src/main.rs index 6845211dc..90547aa6f 100644 --- a/resources/dscecho/src/main.rs +++ b/resources/dscecho/src/main.rs @@ -40,7 +40,10 @@ fn main() { } }, Output::Object(ref mut obj) => { - *obj = redact(obj); + *obj = redact(&Value::Object(obj.clone())) + .as_object() + .expect("Expected redact() to return a Value::Object") + .clone(); }, _ => {} }