Пример #1
0
        public static XacmlJsonRequestRoot CreateDecisionRequest(AuthorizationHandlerContext context, AppAccessRequirement requirement, RouteData routeData)
        {
            XacmlJsonRequest request = new XacmlJsonRequest();

            request.AccessSubject = new List <XacmlJsonCategory>();
            request.Action        = new List <XacmlJsonCategory>();
            request.Resource      = new List <XacmlJsonCategory>();

            string instanceGuid         = routeData.Values[ParamInstanceGuid] as string;
            string app                  = routeData.Values[ParamApp] as string;
            string org                  = routeData.Values[ParamOrg] as string;
            string instanceOwnerPartyId = routeData.Values[ParamInstanceOwnerPartyId] as string;

            if (string.IsNullOrWhiteSpace(app) && string.IsNullOrWhiteSpace(org))
            {
                string appId = routeData.Values[ParamAppId] as string;
                if (appId != null)
                {
                    org = appId.Split("/")[0];
                    app = appId.Split("/")[1];
                }
            }

            request.AccessSubject.Add(CreateSubjectCategory(context.User.Claims));
            request.Action.Add(CreateActionCategory(requirement.ActionType));
            request.Resource.Add(CreateResourceCategory(org, app, instanceOwnerPartyId, instanceGuid));

            XacmlJsonRequestRoot jsonRequest = new XacmlJsonRequestRoot()
            {
                Request = request
            };

            return(jsonRequest);
        }
Пример #2
0
        public static XacmlJsonRequestRoot CreateXacmlJsonRequestRoot(AuthorizationHandlerContext context, AppAccessRequirement requirement, RouteData routeData)
        {
            XacmlJsonRequest request = new XacmlJsonRequest();

            request.AccessSubject = new List <XacmlJsonCategory>();
            request.Action        = new List <XacmlJsonCategory>();
            request.Resource      = new List <XacmlJsonCategory>();

            string instanceGuid         = routeData.Values[ParamInstanceGuid] as string;
            string app                  = routeData.Values[ParamApp] as string;
            string org                  = routeData.Values[ParamOrg] as string;
            string instanceOwnerPartyId = routeData.Values[ParamInstanceOwnerPartyId] as string;

            request.AccessSubject.Add(CreateSubjectCategory(context.User.Claims));
            request.Action.Add(CreateActionCategory(requirement.ActionType));
            request.Resource.Add(CreateResourceCategory(org, app, instanceOwnerPartyId, instanceGuid));

            XacmlJsonRequestRoot jsonRequest = new XacmlJsonRequestRoot()
            {
                Request = request
            };

            return(jsonRequest);
        }