/// <summary>
        /// Decides whether to collect user ip value or not.
        /// </summary>
        /// <param name="initialIPAddress">The initial ip address.</param>
        /// <param name="ipAddressCollectionPolicy">The ip address collection policy.</param>
        /// <returns>The IP value as System.String.</returns>
        private static string?DecideCollectableUserIPValue(
            string?initialIPAddress,
            IpAddressCollectionPolicy ipAddressCollectionPolicy
            )
        {
            if (string.IsNullOrWhiteSpace(initialIPAddress))
            {
                return(null);
            }

            switch (ipAddressCollectionPolicy)
            {
            case IpAddressCollectionPolicy.Collect:
                return(initialIPAddress);

            case IpAddressCollectionPolicy.CollectAnonymized:
                return(IpAddressUtility.Anonymize(initialIPAddress !));

            case IpAddressCollectionPolicy.DoNotCollect:
                return(null);

            default:
                Assumption.FailValidation(
                    "Unexpected enumeration value!"
                    , nameof(ipAddressCollectionPolicy)
                    );
                break;
            }

            return(null);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="RollbarDataSecurityOptions"/> class.
 /// </summary>
 /// <param name="personDataCollectionPolicies">The person data collection policies.</param>
 /// <param name="ipAddressCollectionPolicy">The ip address collection policy.</param>
 /// <param name="scrubFields">The scrub fields.</param>
 /// <param name="scrubSafeFields">The scrub safe fields.</param>
 public RollbarDataSecurityOptions(
     PersonDataCollectionPolicies personDataCollectionPolicies,
     IpAddressCollectionPolicy ipAddressCollectionPolicy,
     string[]?scrubFields     = null,
     string[]?scrubSafeFields = null)
 {
     this.PersonDataCollectionPolicies = personDataCollectionPolicies;
     this.IpAddressCollectionPolicy    = ipAddressCollectionPolicy;
     this.ScrubFields         = scrubFields ?? new string[0];
     this.ScrubSafelistFields = scrubSafeFields ?? new string[0];
 }
        private static void RequestUserIPPolicyTest(
            IpAddressCollectionPolicy policy
            , string initialUserHost
            , string expectedUserHost
            )
        {
            var rollbarConfig = new RollbarConfig(RollbarUnitTestSettings.AccessToken);
            var msg           = FakeHttpRequestMessage(initialUserHost);

            rollbarConfig.IpAddressCollectionPolicy = policy;
            var request = new Request(null, rollbarConfig, msg);

            Assert.AreEqual(expectedUserHost, request.UserIp);
        }
Exemple #4
0
        private static void RequestUserIPPolicyTest(
            IpAddressCollectionPolicy policy
            , string initialUserHost
            , string expectedUserHost
            )
        {
            IRollbarPackage package = new MessagePackage("Some message");

            var rollbarConfig = new RollbarConfig(RollbarUnitTestSettings.AccessToken);

            rollbarConfig.IpAddressCollectionPolicy = policy;
            var msg = FakeHttpRequestMessage(initialUserHost);

            package = new HttpRequestMessagePackageDecorator(package, msg, rollbarConfig);

            var request = package.PackageAsRollbarData().Request;

            Assert.AreEqual(expectedUserHost, request.UserIp);
        }