Ejemplo n.º 1
0
        public async Task RequestJwksAsync_SuccessCase()
        {
            using (SetupJwkServer(out string host))
                using (HttpClient httpClient = new HttpClient()) {
                    IJwksProvider publicKeyProvider = new JwksProvider(
                        httpClient,
                        jwksEndpoint: new Uri(host + GOOD_PATH + JWKS_PATH),
                        jwkEndpoint: null
                        );

                    JsonWebKeySet jwks = await publicKeyProvider
                                         .RequestJwksAsync()
                                         .SafeAsync();

                    Assert.IsNotNull(jwks);
                    Assert.IsTrue(jwks.TryGetKey(GOOD_JWK_ID, out JsonWebKey jwk));
                    Assert.IsTrue(jwks.TryGetKey(GOOD_JWK_ID_STRING, out JsonWebKey jwkString));
                }
        }
        public async Task SuccessCase()
        {
            IJwksProvider publicKeyProvider = new JwksProvider(
                new HttpClient(),
                new Uri(m_host + GOOD_PATH)
                );

            JsonWebKeySet jwks = await publicKeyProvider
                                 .RequestJwksAsync()
                                 .SafeAsync();

            JsonWebKey jwk;

            Assert.IsNotNull(jwks);
            Assert.IsTrue(jwks.TryGetKey(GOOD_JWK_ID, out jwk));
        }
Ejemplo n.º 3
0
        public async Task RequestJwkAsync_StringKeyId_InvalidKeyId_Fallback_DoesNotReturnKey()
        {
            using (SetupJwkServer(out string host, hasJwk: true, jwkStatusCode: HttpStatusCode.OK))
                using (HttpClient httpClient = new HttpClient()) {
                    IJwksProvider jwksProvider = new JwksProvider(
                        httpClient,
                        jwksEndpoint: new Uri(host + GOOD_PATH + JWKS_PATH),
                        jwkEndpoint: new Uri(host + GOOD_PATH + JWK_PATH)
                        );

                    JsonWebKeySet jwks = await jwksProvider
                                         .RequestJwkAsync("NJVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg")
                                         .SafeAsync();

                    Assert.IsNotNull(jwks);

                    //jwksServer.AssertWasCalled( x => x.Get( GOOD_JWK_PATH ) );
                    //jwksServer.AssertWasNotCalled( x => x.Get( GOOD_PATH + JWKS_PATH ) );

                    Assert.IsFalse(jwks.TryGetKey("NJVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg", out JsonWebKey jwk));
                }
        }
Ejemplo n.º 4
0
        public async Task RequestJwkAsync_StringKeyId_500_Fallback_Success()
        {
            using (SetupJwkServer(out string host, hasJwk: false, jwkStatusCode: HttpStatusCode.InternalServerError))
                using (HttpClient httpClient = new HttpClient()) {
                    IJwksProvider jwksProvider = new JwksProvider(
                        httpClient,
                        jwksEndpoint: new Uri(host + GOOD_PATH + JWKS_PATH),
                        jwkEndpoint: new Uri(host + GOOD_PATH + JWK_PATH)
                        );

                    JsonWebKeySet jwks = await jwksProvider
                                         .RequestJwkAsync(GOOD_JWK_ID_STRING)
                                         .SafeAsync();

                    Assert.IsNotNull(jwks);

                    //jwksServer.AssertWasCalled( x => x.Get( GOOD_JWK_PATH ) );
                    //jwksServer.AssertWasCalled( x => x.Get( GOOD_PATH + JWKS_PATH ) );

                    Assert.IsTrue(jwks.TryGetKey(GOOD_JWK_ID_STRING, out JsonWebKey jwk));
                    Assert.AreEqual(GOOD_JWK_ID_STRING, jwk.Id);
                }
        }