Beispiel #1
0
        public async Task Missing_Grant_Type()
        {
            var client = await _settings.FindClientByIdAsync("codeclient");

            var store = new TestAuthorizationCodeStore();

            var code = new AuthorizationCode
            {
                Client      = client,
                IsOpenId    = true,
                RedirectUri = new Uri("https://server/cb"),
            };

            await store.StoreAsync("valid", code);

            var validator = ValidatorFactory.CreateTokenValidator(_settings, _logger,
                                                                  authorizationCodeStore: store);

            var parameters = new NameValueCollection();

            parameters.Add(Constants.TokenRequest.Code, "valid");
            parameters.Add(Constants.TokenRequest.RedirectUri, "https://server/cb");

            var result = await validator.ValidateRequestAsync(parameters, client);

            Assert.IsTrue(result.IsError);
            Assert.AreEqual(Constants.TokenErrors.UnsupportedGrantType, result.Error);
        }
Beispiel #2
0
        public async Task Parameters_Null()
        {
            var store     = new TestAuthorizationCodeStore();
            var validator = ValidatorFactory.CreateTokenValidator(_settings, _logger,
                                                                  authorizationCodeStore: store);

            var result = await validator.ValidateRequestAsync(null, null);
        }
Beispiel #3
0
        public async Task Client_Null()
        {
            var store     = new TestAuthorizationCodeStore();
            var validator = ValidatorFactory.CreateTokenValidator(_settings, _logger,
                                                                  authorizationCodeStore: store);

            var parameters = new NameValueCollection();

            parameters.Add(Constants.TokenRequest.GrantType, Constants.GrantTypes.AuthorizationCode);
            parameters.Add(Constants.TokenRequest.Code, "valid");
            parameters.Add(Constants.TokenRequest.RedirectUri, "https://server/cb");

            var result = await validator.ValidateRequestAsync(parameters, null);
        }
Beispiel #4
0
        public async Task Reused_AuthorizationCode()
        {
            var client = await _settings.FindClientByIdAsync("codeclient");

            var store = new TestAuthorizationCodeStore();

            var code = new AuthorizationCode
            {
                Client      = client,
                IsOpenId    = true,
                RedirectUri = new Uri("https://server/cb"),
            };

            await store.StoreAsync("valid", code);

            var validator = ValidatorFactory.CreateTokenValidator(_settings, _logger,
                                                                  authorizationCodeStore: store,
                                                                  customRequestValidator: new DefaultCustomRequestValidator());

            var parameters = new NameValueCollection();

            parameters.Add(Constants.TokenRequest.GrantType, Constants.GrantTypes.AuthorizationCode);
            parameters.Add(Constants.TokenRequest.Code, "valid");
            parameters.Add(Constants.TokenRequest.RedirectUri, "https://server/cb");

            // request first time
            var result = await validator.ValidateRequestAsync(parameters, client);

            Assert.IsFalse(result.IsError);

            // request second time
            validator = ValidatorFactory.CreateTokenValidator(_settings, _logger,
                                                              authorizationCodeStore: store,
                                                              customRequestValidator: new DefaultCustomRequestValidator());

            result = await validator.ValidateRequestAsync(parameters, client);

            Assert.IsTrue(result.IsError);
            Assert.AreEqual(Constants.TokenErrors.InvalidGrant, result.Error);
        }