Example #1
0
        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]);
        }
Example #2
0
        public async Task ShouldRbacTransformWhenSpecIssuer(
            string issuer, string claim,
            string userName, string resource,
            string action,
            string userNameExpected, string resourceExpected,
            string actionExpected)
        {
            // Arrange
            const string testIssuer  = "LOCAL";
            var          transformer = new RbacRequestTransformer
            {
                Issuer = testIssuer
            };
            var httpContext = new TestUserBuilder()
                              .AddClaim(new Claim(claim, userName,
                                                  ClaimValueTypes.String, issuer))
                              .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 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);
        }
Example #4
0
        public async Task ShouldBasicTransform(
            string claim,
            string userName, string resource,
            string action,
            string userNameExpected, string resourceExpected,
            string actionExpected)
        {
            // Arrange
            var transformer = new BasicRequestTransformer();
            var user        = new TestUserBuilder()
                              .AddClaim(new Claim(claim, userName))
                              .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]);
        }