private PayloadFieldMaskingRule FindMatchingRule(string path) { return(FieldMaskingRules.Find(x => { return new Regex("^" + x.Path.Replace("[", @"\[").Replace("]", @"\]") + "$", RegexOptions.IgnoreCase).IsMatch(path); })); }
public XmlPayloadMaskingRule(string field, Dictionary <string, string> namespaces = null, params PayloadFieldMaskingRule[] rules) { Field = field; FieldMaskingRules.AddRange(rules); if (namespaces != null && namespaces.Count > 0) { foreach (KeyValuePair <string, string> kvp in namespaces) { _namespaces[kvp.Key] = kvp.Value; } } }
public override Payload Apply(Payload target) { var xml = target.GetString(); _xmlDoc = new XmlDocument(); _mgr = new XmlNamespaceManager(_xmlDoc.NameTable); foreach (var kv in _namespaces) { _mgr.AddNamespace(kv.Key, kv.Value); } _xmlDoc.LoadXml(xml); FieldMaskingRules.ForEach(rule => { if (rule != null) { var nodes = GetNodes(rule.Path); if (nodes != null && nodes.Count > 0) { foreach (XmlNode node in nodes) { var value = node.Value.Trim(); node.Value = rule.Mask != null ? rule.Mask.Mask(value) : Masks.DefaultMask.Mask(value); } } } }); using (var stringWriter = new StringWriter()) { using (var xmlTextWriter = XmlWriter.Create(stringWriter)) { _xmlDoc.WriteTo(xmlTextWriter); xmlTextWriter.Flush(); return(new Payload(stringWriter.GetStringBuilder().ToString())); } } }
public JsonPayloadMaskingRule(string field, params PayloadFieldMaskingRule[] rules) { Field = field; FieldMaskingRules.AddRange(rules); }