public AuthorizedTestFixture(Auth0Settings auth0Settings = null, TestTokenService tokenService = null, TestHttpMessageHandler httpMessageHandler = null, IServiceCollection serviceCollection = null) { var auth0SettingsOrDefault = auth0Settings ?? GetDefaultAuth0Settings(); var tokenServiceOrDefault = tokenService ?? GetDefaultTokenService(auth0SettingsOrDefault); var httpMessageHandlerOrDefault = httpMessageHandler ?? GetDefaultHttpMessageHandler(); httpMessageHandlerOrDefault.ConfigureFakeAuth0Authority(auth0SettingsOrDefault, tokenServiceOrDefault); var webHostBuilder = new WebHostBuilder() .UseStartup <TStartup>() .ConfigureServices(services => { services.Configure <Auth0Settings>(settings => { settings.Auth0ClientId = auth0SettingsOrDefault.Auth0ClientId; settings.Auth0Domain = auth0SettingsOrDefault.Auth0Domain; }); services.AddSingleton <IHttpMessageHandlerAccessor>(provider => new HttpMessageHandlerAccessor(httpMessageHandlerOrDefault)); if (serviceCollection != null) { services.Add(serviceCollection); } }); var server = new TestServer(webHostBuilder); HttpClient = server.CreateClient(); TokenService = tokenServiceOrDefault; }
public static void ConfigureFakeAuth0Authority( this TestHttpMessageHandler testHttpMessageHandler, Auth0Settings appSettings, TestTokenService tokenService) { var jwksUri = new Uri(new Uri(appSettings.Auth0Domain), WellKnownJwks); testHttpMessageHandler.PushGetResponse( jwksUri, HttpStatusCode.OK, new Jwks { Keys = new List <Key> { new Key { Alg = "RS256", Kty = "RSA", Use = "sig", X5C = new List <string> { tokenService.GetSigningKey() } } } }, true ); testHttpMessageHandler.PushGetResponse( new Uri(new Uri(appSettings.Auth0Domain), WellKnownOpenIdConfiguartion), HttpStatusCode.OK, new OpenIdConfiguration { Issuer = appSettings.Auth0Domain, JwksUri = jwksUri, IdTokenSigningAlgValuesSupported = new List <string> { "RS256" } }, true ); }