Esempio n. 1
0
 public static void AssertFailIfErrors(CompareContext context)
 {
     AssertFailIfErrors(context.Title, context.Diffs);
 }
        public void Publics()
        {
            TokenValidationParameters validationParameters = new TokenValidationParameters();
            Type type = typeof(TokenValidationParameters);

            PropertyInfo[] properties = type.GetProperties();
            if (properties.Length != 36)
            {
                Assert.True(false, "Number of properties has changed from 36 to: " + properties.Length + ", adjust tests");
            }

            TokenValidationParameters actorValidationParameters = new TokenValidationParameters();
            SecurityKey issuerSigningKey  = KeyingMaterial.DefaultX509Key_2048_Public;
            SecurityKey issuerSigningKey2 = KeyingMaterial.RsaSecurityKey_2048;

            List <SecurityKey> issuerSigningKeys =
                new List <SecurityKey>
            {
                KeyingMaterial.DefaultX509Key_2048_Public,
                KeyingMaterial.RsaSecurityKey_2048
            };

            List <SecurityKey> issuerSigningKeysDup =
                new List <SecurityKey>
            {
                KeyingMaterial.DefaultX509Key_2048_Public,
                KeyingMaterial.RsaSecurityKey_2048
            };

            string        validAudience  = "ValidAudience";
            List <string> validAudiences = new List <string> {
                validAudience
            };
            string        validIssuer  = "ValidIssuer";
            List <string> validIssuers = new List <string> {
                validIssuer
            };

            var propertyBag =
                new Dictionary <string, Object>
            {
                { "CustomKey", "CustomValue" }
            };

            TokenValidationParameters validationParametersInline = new TokenValidationParameters()
            {
                ActorValidationParameters = actorValidationParameters,
                AudienceValidator         = ValidationDelegates.AudienceValidatorReturnsTrue,
                IssuerSigningKey          = issuerSigningKey,
                IssuerSigningKeyResolver  = (token, securityToken, keyIdentifier, tvp) => { return(new List <SecurityKey> {
                        issuerSigningKey
                    }); },
                IssuerSigningKeys         = issuerSigningKeys,
                IssuerValidator           = ValidationDelegates.IssuerValidatorEcho,
                LifetimeValidator         = ValidationDelegates.LifetimeValidatorReturnsTrue,
                PropertyBag        = propertyBag,
                SignatureValidator = ValidationDelegates.SignatureValidatorReturnsJwtTokenAsIs,
                SaveSigninToken    = true,
                ValidateAudience   = false,
                ValidateIssuer     = false,
                ValidAudience      = validAudience,
                ValidAudiences     = validAudiences,
                ValidIssuer        = validIssuer,
                ValidIssuers       = validIssuers,
            };

            Assert.True(object.ReferenceEquals(actorValidationParameters, validationParametersInline.ActorValidationParameters));
            Assert.True(object.ReferenceEquals(validationParametersInline.IssuerSigningKey, issuerSigningKey));
            Assert.True(object.ReferenceEquals(validationParametersInline.PropertyBag, propertyBag));
            Assert.True(validationParametersInline.SaveSigninToken);
            Assert.False(validationParametersInline.ValidateAudience);
            Assert.False(validationParametersInline.ValidateIssuer);
            Assert.True(object.ReferenceEquals(validationParametersInline.ValidAudience, validAudience));
            Assert.True(object.ReferenceEquals(validationParametersInline.ValidAudiences, validAudiences));
            Assert.True(object.ReferenceEquals(validationParametersInline.ValidIssuer, validIssuer));

            TokenValidationParameters validationParametersSets = new TokenValidationParameters();

            validationParametersSets.ActorValidationParameters = actorValidationParameters;
            validationParametersSets.AudienceValidator         = ValidationDelegates.AudienceValidatorReturnsTrue;
            validationParametersSets.IssuerSigningKey          = KeyingMaterial.DefaultX509Key_2048_Public;
            validationParametersSets.IssuerSigningKeyResolver  = (token, securityToken, keyIdentifier, tvp) => { return(new List <SecurityKey> {
                    issuerSigningKey2
                }); };
            validationParametersSets.IssuerSigningKeys         = issuerSigningKeysDup;
            validationParametersSets.IssuerValidator           = ValidationDelegates.IssuerValidatorEcho;
            validationParametersSets.LifetimeValidator         = ValidationDelegates.LifetimeValidatorReturnsTrue;
            validationParametersSets.PropertyBag        = propertyBag;
            validationParametersSets.SignatureValidator = ValidationDelegates.SignatureValidatorReturnsJwtTokenAsIs;
            validationParametersSets.SaveSigninToken    = true;
            validationParametersSets.ValidateAudience   = false;
            validationParametersSets.ValidateIssuer     = false;
            validationParametersSets.ValidAudience      = validAudience;
            validationParametersSets.ValidAudiences     = validAudiences;
            validationParametersSets.ValidIssuer        = validIssuer;
            validationParametersSets.ValidIssuers       = validIssuers;

            var compareContext = new CompareContext();

            IdentityComparer.AreEqual(validationParametersInline, validationParametersSets, compareContext);

            TokenValidationParameters tokenValidationParametersCloned = validationParametersInline.Clone() as TokenValidationParameters;

            IdentityComparer.AreEqual(tokenValidationParametersCloned, validationParametersInline, compareContext);
            //tokenValidationParametersCloned.AudienceValidator(new string[]{"bob"}, JwtTestTokens.Simple();

            string id = Guid.NewGuid().ToString();
            DerivedTokenValidationParameters derivedValidationParameters       = new DerivedTokenValidationParameters(id, validationParametersInline);
            DerivedTokenValidationParameters derivedValidationParametersCloned = derivedValidationParameters.Clone() as DerivedTokenValidationParameters;

            IdentityComparer.AreEqual(derivedValidationParameters, derivedValidationParametersCloned, compareContext);
            IdentityComparer.AreEqual(derivedValidationParameters.InternalString, derivedValidationParametersCloned.InternalString, compareContext);

            TestUtilities.AssertFailIfErrors("TokenValidationParameters", compareContext.Diffs);
        }
        public void Defaults()
        {
            var        context    = new CompareContext();
            JsonWebKey jsonWebKey = new JsonWebKey();

            if (jsonWebKey.Alg != null)
            {
                context.Diffs.Add("jsonWebKey.Alg != null");
            }

            if (jsonWebKey.KeyOps.Count != 0)
            {
                context.Diffs.Add("jsonWebKey.KeyOps.Count != 0");
            }

            if (jsonWebKey.Kid != null)
            {
                context.Diffs.Add("jsonWebKey.Kid != null");
            }

            if (jsonWebKey.Kty != null)
            {
                context.Diffs.Add("jsonWebKey.Kty != null");
            }

            if (jsonWebKey.X5c == null)
            {
                context.Diffs.Add("jsonWebKey.X5c == null");
            }

            if (jsonWebKey.X5c.Count != 0)
            {
                context.Diffs.Add("jsonWebKey.X5c.Count != 0");
            }

            if (jsonWebKey.X5t != null)
            {
                context.Diffs.Add("jsonWebKey.X5t != null");
            }

            if (jsonWebKey.X5u != null)
            {
                context.Diffs.Add("jsonWebKey.X5u != null");
            }

            if (jsonWebKey.Use != null)
            {
                context.Diffs.Add("jsonWebKey.Use != null");
            }

            if (jsonWebKey.AdditionalData == null)
            {
                context.Diffs.Add("jsonWebKey.AdditionalData == null");
            }
            else if (jsonWebKey.AdditionalData.Count != 0)
            {
                context.Diffs.Add("jsonWebKey.AdditionalData.Count != 0");
            }

            TestUtilities.AssertFailIfErrors(context);
        }