public void EncryptV3_WithDateTimeOnly_ReturnsEncryptedTokenWithOnlyDate()
        {
            // Arrange
            var generator  = new TokenBuilder();
            var expireTime = DateTime.Now.AddMilliseconds(300);
            var key        = Faker.Name.FullName();

            // Act
            var token = generator.EncryptV3(key, expireTime);

            // Assert
            Assert.NotNull(token);
            var decryptdToken = generator.DecryptV3(key, token);

            var expected = $"ec_expire={expireTime.FromEpoch()}";

            Assert.Equal(expected, decryptdToken);
        }
        public void EncryptV3_WithDateTimeAndClientIP_ReturnsEcnryptedTokenWithBoth()
        {
            // Arrange
            var generator  = new TokenBuilder();
            var expireTime = DateTime.Now.AddMilliseconds(300);
            var clientIp   = Faker.Internet.DomainName();
            var key        = Faker.Name.FullName();

            // Act
            var token = generator.EncryptV3(key, expireTime, clientIp);

            // Assert

            Assert.NotNull(token);
            var decryptdToken = generator.DecryptV3(key, token);

            var expected = $"ec_expire={expireTime.FromEpoch()}&ec_clientip={clientIp}";

            Assert.Equal(expected, decryptdToken);
        }
示例#3
0
        public string NewToken(string policyName)
        {
            var policy = _config.GetPolicyByName(policyName)
                         ?? new MediaConfigPolicy();

            var tokenBuilder = new TokenBuilder();

            string clientIPAddress = null;

            if (policy.RestrictIPAddress == RestrictIPAddressMode.Request &&
                _currentContext != null)
            {
                clientIPAddress = _currentContext.Connection.RemoteIpAddress.ToString();
            }

            return(tokenBuilder.EncryptV3(_config.Key,
                                          policy.ExpirationTimeSpan,
                                          clientIPAddress, policy.AllowedCountries,
                                          policy.DeniedCountries, policy.AllowedReferers,
                                          policy.DeniedReferers, policy.AllowedProtocol,
                                          policy.DeniedProtocol, policy.AllowedUrls));
        }