public void Configure_IgnoresOptionsForDifferentSchemes() { // Arrange var localApiDescriptor = new Mock <IIdentityServerJwtDescriptor>(); localApiDescriptor.Setup(lad => lad.GetResourceDefinitions()) .Returns(new Dictionary <string, ResourceDefinition> { ["TestAPI"] = new ResourceDefinition { Profile = ApplicationProfiles.IdentityServerJwt } }); var bearerConfiguration = new IdentityServerJwtBearerOptionsConfiguration( "authScheme", "TestAPI", localApiDescriptor.Object); var options = new JwtBearerOptions(); // Act bearerConfiguration.Configure("otherScheme", options); // Assert Assert.NotEqual("name", options.TokenValidationParameters.NameClaimType); Assert.NotEqual("role", options.TokenValidationParameters.RoleClaimType); Assert.NotEqual("TestAPI", options.Audience); Assert.NotEqual("https://localhost", options.Authority); }
public void Configure_IgnoresOptionsForNonExistingAPIs() { // Arrange var contextAccessor = new Mock <IHttpContextAccessor>(); var context = new DefaultHttpContext(); context.Request.Scheme = "https"; context.Request.Host = new HostString("localhost"); context.RequestServices = new ServiceCollection() .AddSingleton(new IdentityServerOptions()) .BuildServiceProvider(); contextAccessor.SetupGet(ca => ca.HttpContext).Returns( context); var localApiDescriptor = new Mock <IIdentityServerJwtDescriptor>(); localApiDescriptor.Setup(lad => lad.GetResourceDefinitions()) .Returns(new Dictionary <string, ResourceDefinition> { ["TestAPI"] = new ResourceDefinition { Profile = ApplicationProfiles.IdentityServerJwt } }); var credentialsStore = new Mock <ISigningCredentialStore>(); var key = new RsaSecurityKey(RSA.Create()); credentialsStore.Setup(cs => cs.GetSigningCredentialsAsync()) .ReturnsAsync(new SigningCredentials(key, "RS256")); var bearerConfiguration = new IdentityServerJwtBearerOptionsConfiguration( "authScheme", "NonExistingApi", localApiDescriptor.Object); var options = new JwtBearerOptions(); // Act bearerConfiguration.Configure("authScheme", options); // Assert Assert.NotEqual("name", options.TokenValidationParameters.NameClaimType); Assert.NotEqual("role", options.TokenValidationParameters.RoleClaimType); Assert.NotEqual(key, options.TokenValidationParameters.IssuerSigningKey); Assert.NotEqual("TestAPI", options.Audience); Assert.NotEqual("https://localhost", options.Authority); }