public IpDetectionViewModel(ForwardedHeadersAppOptions model, IDialogCoordinator dialogCoordinator, INotifiableEventPublisher eventPublisher) { this.DisplayName = "IP address detection"; this.model = model; this.dialogCoordinator = dialogCoordinator; this.model.KnownNetworks ??= new List <string>(); this.model.KnownProxies ??= new List <string>(); this.KnownProxies = new BindableCollection <string>(model.KnownProxies); this.KnownNetworks = new BindableCollection <string>(model.KnownNetworks); eventPublisher.Register(this); }
public void ForwardedHeadersAppOptionsToNativeOptions() { ForwardedHeadersAppOptions s = new ForwardedHeadersAppOptions(); s.AllowedHosts = new List <string>() { "2.2.2.2" }; s.ForwardedForHeaderName = TestContext.CurrentContext.Random.GetString(); s.ForwardedHeaders = Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedFor; s.ForwardedHostHeaderName = TestContext.CurrentContext.Random.GetString(); s.ForwardedProtoHeaderName = TestContext.CurrentContext.Random.GetString(); s.ForwardLimit = TestContext.CurrentContext.Random.Next(); s.KnownNetworks = new List <string>() { "1.1.1.1/5" }; s.KnownProxies = new List <string>() { "1.2.3.4" }; s.OriginalForHeaderName = TestContext.CurrentContext.Random.GetString(); s.OriginalHostHeaderName = TestContext.CurrentContext.Random.GetString(); s.OriginalProtoHeaderName = TestContext.CurrentContext.Random.GetString(); s.RequireHeaderSymmetry = true; var n = s.ToNativeOptions(); Assert.AreEqual(s.ForwardedForHeaderName, n.ForwardedForHeaderName); Assert.AreEqual(s.ForwardedHeaders, n.ForwardedHeaders); Assert.AreEqual(s.ForwardedHostHeaderName, n.ForwardedHostHeaderName); Assert.AreEqual(s.ForwardedProtoHeaderName, n.ForwardedProtoHeaderName); Assert.AreEqual(s.ForwardLimit, n.ForwardLimit); Assert.AreEqual(s.OriginalForHeaderName, n.OriginalForHeaderName); Assert.AreEqual(s.OriginalHostHeaderName, n.OriginalHostHeaderName); Assert.AreEqual(s.OriginalProtoHeaderName, n.OriginalProtoHeaderName); Assert.AreEqual(s.RequireHeaderSymmetry, n.RequireHeaderSymmetry); CollectionAssert.AreEqual(s.AllowedHosts, n.AllowedHosts); CollectionAssert.AreEqual(s.KnownNetworks, n.KnownNetworks.Select(t => $"{t.Prefix}/{t.PrefixLength}")); CollectionAssert.AreEqual(s.KnownProxies, n.KnownProxies.Select(t => t.ToString())); }
public void SerializeForwardedHeadersAppOptions() { ForwardedHeadersAppOptions s = new ForwardedHeadersAppOptions(); s.AllowedHosts = new List <string>() { TestContext.CurrentContext.Random.GetString(), TestContext.CurrentContext.Random.GetString() }; s.ForwardedForHeaderName = TestContext.CurrentContext.Random.GetString(); s.ForwardedHeaders = Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedFor; s.ForwardedHostHeaderName = TestContext.CurrentContext.Random.GetString(); s.ForwardedProtoHeaderName = TestContext.CurrentContext.Random.GetString(); s.ForwardLimit = TestContext.CurrentContext.Random.Next(); s.KnownNetworks = new List <string>() { TestContext.CurrentContext.Random.GetString(), TestContext.CurrentContext.Random.GetString() }; s.KnownProxies = new List <string>() { TestContext.CurrentContext.Random.GetString(), TestContext.CurrentContext.Random.GetString() }; s.OriginalForHeaderName = TestContext.CurrentContext.Random.GetString(); s.OriginalHostHeaderName = TestContext.CurrentContext.Random.GetString(); s.OriginalProtoHeaderName = TestContext.CurrentContext.Random.GetString(); s.RequireHeaderSymmetry = true; ForwardedHeadersAppOptions n = JsonConvert.DeserializeObject <ForwardedHeadersAppOptions>(JsonConvert.SerializeObject(s)); Assert.AreEqual(s.ForwardedForHeaderName, n.ForwardedForHeaderName); Assert.AreEqual(s.ForwardedHeaders, n.ForwardedHeaders); Assert.AreEqual(s.ForwardedHostHeaderName, n.ForwardedHostHeaderName); Assert.AreEqual(s.ForwardedProtoHeaderName, n.ForwardedProtoHeaderName); Assert.AreEqual(s.ForwardLimit, n.ForwardLimit); Assert.AreEqual(s.OriginalForHeaderName, n.OriginalForHeaderName); Assert.AreEqual(s.OriginalHostHeaderName, n.OriginalHostHeaderName); Assert.AreEqual(s.OriginalProtoHeaderName, n.OriginalProtoHeaderName); Assert.AreEqual(s.RequireHeaderSymmetry, n.RequireHeaderSymmetry); CollectionAssert.AreEqual(s.AllowedHosts, n.AllowedHosts); CollectionAssert.AreEqual(s.KnownNetworks, n.KnownNetworks); CollectionAssert.AreEqual(s.KnownProxies, n.KnownProxies); }