public void AddBewitGeneration_WithMyPayload_ShouldAddBewitTokenGeneratorForMyPayload() { //Arrange const string secret = "112"; var services = new ServiceCollection(); //Act services.AddBewitGeneration(new BewitOptions { Secret = secret }, b => b.AddPayload <Foo>()); //Assert ServiceProvider serviceProvider = null; try { serviceProvider = services.BuildServiceProvider(); IBewitTokenGenerator <Foo> bewitTokenGenerator = serviceProvider.GetService <IBewitTokenGenerator <Foo> >(); bewitTokenGenerator.Should().NotBeNull(); bewitTokenGenerator.Should() .BeOfType <BewitTokenGenerator <Foo> >(); } finally { serviceProvider?.Dispose(); } }
public void AddBewitGeneration_WithPersistance_ShouldAddPersistedBewitTokenGenerator() { //Arrange const string secret = "112"; var services = new ServiceCollection(); //Act services.AddSingleton <INonceRepository>(new Mock <INonceRepository>().Object); services.AddBewitGeneration(new BewitOptions { Secret = secret }, builder => { builder.AddPayload <Foo>(); }); //Assert ServiceProvider serviceProvider = null; try { serviceProvider = services.BuildServiceProvider(); IBewitTokenGenerator <Foo> bewitTokenGenerator = serviceProvider.GetService <IBewitTokenGenerator <Foo> >(); bewitTokenGenerator.Should().NotBeNull(); bewitTokenGenerator.Should() .BeOfType <BewitTokenGenerator <Foo> >(); } finally { serviceProvider?.Dispose(); } }
public void AddBewitGeneration_WithValidConfiguration_ShouldAddBewitTokenGeneratorForMyPayload() { //Arrange var services = new ServiceCollection(); IConfigurationRoot configuration = new ConfigurationBuilder() .AddInMemoryCollection(new[] { new KeyValuePair <string, string>("Bewit:Secret", "123") }) .Build(); //Act services.AddBewitGeneration(configuration, b => b.AddPayload <Foo>()); //Assert ServiceProvider serviceProvider = null; try { serviceProvider = services.BuildServiceProvider(); IBewitTokenGenerator <Foo> bewitTokenGenerator = serviceProvider.GetService <IBewitTokenGenerator <Foo> >(); bewitTokenGenerator.Should().NotBeNull(); bewitTokenGenerator.Should() .BeOfType <BewitTokenGenerator <Foo> >(); } finally { serviceProvider?.Dispose(); } }
public Mutation( IBewitTokenGenerator <FooPayload> fooPayloadGenerator, IBewitTokenGenerator <BarPayload> barPayloadGenerator) { _fooPayloadGenerator = fooPayloadGenerator; _barPayloadGenerator = barPayloadGenerator; }
public static async Task <string> CreateToken <T>( IServiceProvider serviceProvider, T payload) { IBewitTokenGenerator <T> bewitGenerator = serviceProvider .GetService <IBewitTokenGenerator <T> >(); return((await bewitGenerator .GenerateBewitTokenAsync(payload, default)) .ToString()); }
public async Task InvokeAsync( IMiddlewareContext context, IBewitTokenGenerator <TPayload> tokenGenerator) { await _next(context).ConfigureAwait(false); if (context.Result is TPayload result) { BewitToken <TPayload> bewit = await tokenGenerator.GenerateBewitTokenAsync( result, context.RequestAborted); context.Result = (string)bewit; } }
public static async Task <string> CreateBadToken() { var bewitOptions = new BewitOptions { Secret = "badSecret", TokenDuration = TimeSpan.FromMinutes(5) }; ServiceProvider serviceProvider = new ServiceCollection() .AddBewitGeneration(bewitOptions, b => b.AddPayload <string>()) .BuildServiceProvider(); IBewitTokenGenerator <string> bewitGenerator = serviceProvider .GetService <IBewitTokenGenerator <string> >(); return((await bewitGenerator .GenerateBewitTokenAsync("badPayload", default)) .ToString()); }
public async Task InvokeAsync( IMiddlewareContext context, IBewitTokenGenerator <string> tokenGenerator) { await _next(context).ConfigureAwait(false); if (context.Result is string result) { var uri = new Uri(result); BewitToken <string> bewit = await tokenGenerator.GenerateBewitTokenAsync( uri.PathAndQuery, context.RequestAborted); var parametersToAdd = new Dictionary <string, string> { { "bewit", WebUtility.UrlEncode((string)bewit) } }; var newUri = QueryHelpers.AddQueryString(result, parametersToAdd); context.Result = newUri; } }