예제 #1
0
        public async Task IsRedirectUriValidAsync_CallsBaseAndFails_ForInvalidRedirectUrisOnRegularClients()
        {
            // Arrange
            var providedFullUrl = "https://localhost:5001/notregistered";
            var expectedClient  = new Client
            {
                RedirectUris = { "https://localhost:5001/authenticate" },
            };

            var factory = new TestUrlFactory();
            var redirectUriValidator = new RelativeRedirectUriValidator(factory);

            // Act
            var validator = await redirectUriValidator.IsRedirectUriValidAsync(providedFullUrl, expectedClient);

            // Assert
            Assert.False(validator);
        }
예제 #2
0
        public async Task IsPostLogoutRedirectUriValidAsync_CallsBaseAndSucceeds_ForValidPostLogoutRedirectUrisOnRegularClients()
        {
            // Arrange
            var providedFullUrl = "https://localhost:5001/logout";
            var expectedClient  = new Client
            {
                PostLogoutRedirectUris = { "https://localhost:5001/logout" },
            };

            var factory = new TestUrlFactory();
            var redirectUriValidator = new RelativeRedirectUriValidator(factory);

            // Act
            var validator = await redirectUriValidator.IsPostLogoutRedirectUriValidAsync(providedFullUrl, expectedClient);

            // Assert
            Assert.True(validator);
        }
예제 #3
0
        public async Task IsRedirectUriValidAsync_RejectsIfTheRelativeUriIsNotRegistered_ForLocalSPAsAsync()
        {
            // Arrange
            var expectedRelativeUri = "/authenticate";
            var providedFullUrl     = "https://localhost:5001/notregistered";
            var expectedClient      = new Client
            {
                RedirectUris = { expectedRelativeUri },
                Properties   = new Dictionary <string, string>
                {
                    [ApplicationProfilesPropertyNames.Profile] = ApplicationProfiles.IdentityServerSPA,
                }
            };
            var factory = new TestUrlFactory();
            var redirectUriValidator = new RelativeRedirectUriValidator(factory);

            // Act
            var validator = await redirectUriValidator.IsRedirectUriValidAsync(providedFullUrl, expectedClient);

            // Assert
            Assert.False(validator);
        }
예제 #4
0
        public async Task IsPostLogoutRedirectUriValidAsync_ConvertsRelativeUrisIntoAbsoluteUris_ForLocalSPAsAsync()
        {
            // Arrange
            var expectedRelativeUri = "/logout";
            var providedFullUrl     = "https://localhost:5001/logout";
            var expectedClient      = new Client
            {
                PostLogoutRedirectUris = { expectedRelativeUri },
                Properties             = new Dictionary <string, string>
                {
                    [ApplicationProfilesPropertyNames.Profile] = ApplicationProfiles.IdentityServerSPA,
                }
            };
            var factory = new TestUrlFactory(expectedRelativeUri, providedFullUrl);
            var redirectUriValidator = new RelativeRedirectUriValidator(factory);

            // Act
            var validator = await redirectUriValidator.IsPostLogoutRedirectUriValidAsync(providedFullUrl, expectedClient);

            // Assert
            Assert.True(validator);
        }