Beispiel #1
0
 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);
        }