diff --git a/src/validation.rs b/src/validation.rs index f4f3d0e..15f4c5d 100644 --- a/src/validation.rs +++ b/src/validation.rs @@ -152,14 +152,15 @@ pub fn validate(claims: &Map, options: &Validation) -> Result<()> if let Some(ref correct_aud) = options.aud { if let Some(aud) = claims.get("aud") { match aud { - Value::String(aud_found) => { - if !correct_aud.contains(aud_found) { + Value::String(aud) => { + if !correct_aud.contains(aud) { return Err(new_error(ErrorKind::InvalidAudience)); } } Value::Array(_) => { - let provided_aud: HashSet = from_value(aud.clone())?; - if provided_aud.intersection(correct_aud).next().is_none() { + use serde::Deserialize; + let aud = HashSet::::deserialize(aud)?; + if aud.intersection(correct_aud).next().is_none() { return Err(new_error(ErrorKind::InvalidAudience)); } }