Exemplo n.º 1
0
        public void ValidateResponse_TC02()
        {
            // Arrange
            XacmlJsonResponse response = new XacmlJsonResponse();

            response.Response = new List <XacmlJsonResult>();
            XacmlJsonResult xacmlJsonResult = new XacmlJsonResult();

            xacmlJsonResult.Decision = XacmlContextDecision.Permit.ToString();
            response.Response.Add(xacmlJsonResult);
            // Add obligation to result with a minimum authentication level attribute
            XacmlJsonObligationOrAdvice obligation = new XacmlJsonObligationOrAdvice();

            obligation.AttributeAssignment = new List <XacmlJsonAttributeAssignment>();
            XacmlJsonAttributeAssignment authenticationAttribute = new XacmlJsonAttributeAssignment()
            {
                Category = "urn:altinn:minimum-authenticationlevel",
                Value    = "2"
            };

            obligation.AttributeAssignment.Add(authenticationAttribute);
            xacmlJsonResult.Obligations = new List <XacmlJsonObligationOrAdvice>();
            xacmlJsonResult.Obligations.Add(obligation);

            // Act
            bool result = DecisionHelper.ValidateResponse(response.Response, CreateUserClaims(false));

            // Assert
            Assert.True(result);
        }
Exemplo n.º 2
0
        public void ValidateResponse_TC07()
        {
            // Arrange
            XacmlJsonResponse response = new XacmlJsonResponse();

            response.Response = new List <XacmlJsonResult>();

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => DecisionHelper.ValidateResponse(response.Response, null));
        }
Exemplo n.º 3
0
        public void ValidateResponse_TC06()
        {
            // Arrange
            XacmlJsonResponse response = new XacmlJsonResponse();

            response.Response = null;

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => DecisionHelper.ValidateResponse(response.Response, CreateUserClaims(false)));
        }
Exemplo n.º 4
0
        public async Task <bool> GetDecisionForUnvalidateRequest(XacmlJsonRequestRoot xacmlJsonRequest, ClaimsPrincipal user)
        {
            if (_pepSettings.DisablePEP)
            {
                return(true);
            }

            XacmlJsonResponse response = await GetDecisionForRequest(xacmlJsonRequest);

            return(DecisionHelper.ValidateResponse(response.Response, user));
        }
Exemplo n.º 5
0
        public void ValidateResponse_TC01()
        {
            // Arrange
            XacmlJsonResponse response = new XacmlJsonResponse();

            response.Response = new List <XacmlJsonResult>();
            XacmlJsonResult xacmlJsonResult = new XacmlJsonResult();

            xacmlJsonResult.Decision = XacmlContextDecision.Permit.ToString();
            response.Response.Add(xacmlJsonResult);

            // Act
            bool result = DecisionHelper.ValidateResponse(response.Response, CreateUserClaims(false));

            // Assert
            Assert.True(result);
        }
Exemplo n.º 6
0
        /// <summary>
        /// This method authorize access bases on context and requirement
        /// Is triggered by annotation on MVC action and setup in startup.
        /// </summary>
        /// <param name="context">The context</param>
        /// <param name="requirement">The requirement</param>
        /// <returns>A Task</returns>
        protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, AppAccessRequirement requirement)
        {
            if (_pepSettings.DisablePEP)
            {
                context.Succeed(requirement);
                return;
            }

            XacmlJsonRequestRoot request  = DecisionHelper.CreateXacmlJsonRequestRoot(context, requirement, _httpContextAccessor.HttpContext.GetRouteData());
            XacmlJsonResponse    response = await _pdp.GetDecisionForRequest(request);

            if (response?.Response == null)
            {
                throw new ArgumentNullException("response");
            }

            if (!DecisionHelper.ValidateResponse(response.Response, context.User))
            {
                context.Fail();
            }

            context.Succeed(requirement);
            await Task.CompletedTask;
        }