public async Task Metadata_CanBeDeserializedAsMetadata() { var response = await _client.GetAsync("/wsfederation/metadata"); var content = await response.Content.ReadAsStreamAsync(); using (var reader = XmlReader.Create(content)) { var serializer = new WsFederationMetadataSerializer(); var configuration = serializer.ReadMetadata(reader); Assert.AreEqual("http://localhost/wsfederation", configuration.TokenEndpoint); } }
public async Task Metadata_should_return_metadata_document_with_key_rotation() { var configuration = new Dictionary <string, string> { ["IdentityServer:Key:Type"] = "KeysRotation", ["Seed"] = "false" }; var sut = TestUtils.CreateTestServer(configurationOverrides: configuration); using var client = sut.CreateClient(); using var response = await client.GetAsync("/wsfederation/metadata"); Assert.Equal(HttpStatusCode.OK, response.StatusCode); using var reader = XmlReader.Create(await response.Content.ReadAsStreamAsync().ConfigureAwait(false)); var serializer = new WsFederationMetadataSerializer(); var metadata = serializer.ReadMetadata(reader); Assert.NotNull(metadata); }
public static IssuerSigningKeys GetSigningKeys(string metadataEndpoint, TimeSpan backchannelTimeout, HttpMessageHandler backchannelHttpHandler) { using (var metadataRequest = new HttpClient(backchannelHttpHandler, false)) { metadataRequest.Timeout = backchannelTimeout; using (HttpResponseMessage metadataResponse = metadataRequest.GetAsync(metadataEndpoint).Result) { metadataResponse.EnsureSuccessStatusCode(); Stream metadataStream = metadataResponse.Content.ReadAsStreamAsync().Result; using (XmlReader metaDataReader = XmlReader.Create(metadataStream, SafeSettings)) { var serializer = new WsFederationMetadataSerializer(); var wsFederationConfiguration = serializer.ReadMetadata(metaDataReader); return(new IssuerSigningKeys { Issuer = wsFederationConfiguration.Issuer, Keys = wsFederationConfiguration.SigningKeys }); } } } }