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)); }
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)); } }
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); } }