public static ClaimsProviderTest WithUserClaims() { var provider = new ClaimsProviderTest(); provider.Claims.Add(new Claim(ClaimTypes.NameIdentifier, Guid.NewGuid().ToString())); provider.Claims.Add(new Claim(ClaimTypes.Name, "testUser")); provider.Claims.Add(new Claim(ClaimTypes.Role, Role.User)); return(provider); }
public static HttpClient CreateClientWithTokenAuth <T>(this WebApplicationFactory <T> factory, ClaimsProviderTest claimsProvider) where T : class { var configuration = factory.Services.GetRequiredService <IConfiguration>(); var jwtIssuerOptionsSection = configuration.GetSection(nameof(JwtIssuerOptions)); var jwtSettings = jwtIssuerOptionsSection.Get <JwtIssuerOptions>(); var signingCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.SigningKey)), SecurityAlgorithms.HmacSha256Signature); var token = new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken(jwtSettings.Issuer, jwtSettings.Audience, claimsProvider.Claims, null, DateTime.UtcNow.AddMinutes(30), signingCredentials)); var client = factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false }); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(JwtBearerDefaults.AuthenticationScheme, token); return(client); }