public static Dictionary<string, object> CheckGripSignature(string gripSignatureHeader, PublishControl.Configuration config, DateTime? checkTime = null) { string claimRaw = null; foreach (var entry in config.Entries) { if (entry.Key == null) continue; try { claimRaw = JWT.JsonWebToken.Decode(gripSignatureHeader, entry.Key); break; } catch (Exception) { // pass } } if (claimRaw == null) throw new ValidationException("Could not decode signature with any key."); return CheckGripSignature(claimRaw, checkTime); }
public static bool CheckGripSignature(this HttpRequestMessage request, PublishControl.Configuration config, DateTime? checkTime = null) { IEnumerable<string> values; if (!request.Headers.TryGetValues("Grip-Sig", out values)) return false; foreach (var headerVal in values) { try { Validator.CheckGripSignature(headerVal, config, checkTime); return true; } catch (ValidationException) { // skip to the next } } return false; }