public async Task ShouldBasicTransformWhenSpecClaim( string claim, string userName, string resource, string action, string userNameExpected, string resourceExpected, string actionExpected) { // Arrange const string testClaimType = ClaimTypes.Role; var transformer = new BasicRequestTransformer { PreferSubClaimType = testClaimType }; var httpContext = new TestUserBuilder() .AddClaim(new Claim(claim, userName)) .Build().CreateDefaultHttpContext(); var casbinContext = new CasbinAuthorizationContext( new CasbinAuthorizeAttribute(resource, action), httpContext); // Act object[] requestValues = (await transformer.TransformAsync(casbinContext, casbinContext.AuthorizationData.First())).ToArray(); // Assert Assert.Equal(userNameExpected, requestValues[0]); Assert.Equal(resourceExpected, requestValues[1]); Assert.Equal(actionExpected, requestValues[2]); }
public async Task ShouldBasicTransformWhenSpecIssuer( string issuer, string claim, string userName, string resource, string action, string userNameExpected, string resourceExpected, string actionExpected) { // Arrange const string testIssuer = "LOCAL"; var transformer = new BasicRequestTransformer { Issuer = testIssuer }; var user = new TestUserBuilder() .AddClaim(new Claim(claim, userName, ClaimValueTypes.String, issuer)) .Build(); var casbinContext = new CasbinAuthorizationContext(user, new CasbinAuthorizeAttribute(resource, action)); // Act var requestValues = (await transformer.TransformAsync(casbinContext, casbinContext.AuthorizationData.First())).ToArray(); // Assert Assert.Equal(userNameExpected, requestValues[0]); Assert.Equal(resourceExpected, requestValues[1]); Assert.Equal(actionExpected, requestValues[2]); }
public void ShouldBasicTransformWhenSpecIssuer() { const string testIssuer = "LOCAL"; var transformer = new BasicRequestTransformer { Issuer = testIssuer }; // Success var user = new TestUserBuilder() .AddClaim(new Claim(ClaimTypes.NameIdentifier, "alice", ClaimValueTypes.String, testIssuer)) .Build(); var casbinContext = new CasbinAuthorizationContext(user, new CasbinAuthorizationData { Resource = "data1", Action = "write" }); // Act string sub = transformer.SubTransform(casbinContext); object obj = transformer.ObjTransform(casbinContext); string act = transformer.ActTransform(casbinContext); // Assert Assert.Equal("alice", sub); Assert.Equal("data1", obj); Assert.Equal("write", act); // Failed user = new TestUserBuilder() .AddClaim(new Claim(ClaimTypes.NameIdentifier, "alice")) .Build(); casbinContext = new CasbinAuthorizationContext(user, new CasbinAuthorizationData { Resource = "data1", Action = "write" }); // Act sub = transformer.SubTransform(casbinContext); obj = transformer.ObjTransform(casbinContext); act = transformer.ActTransform(casbinContext); // Assert Assert.NotEqual("alice", sub); Assert.Equal("data1", obj); Assert.Equal("write", act); }