コード例 #1
0
        public bool CanAccess(EndpointAttributes reqAttrs, Format format, string operationName)
        {
            if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions)
            {
                return(true);
            }

            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            if (operation == null)
            {
                return(false);
            }

            if (operation.RestrictTo == null)
            {
                return(true);
            }

            var allow = operation.RestrictTo.HasAccessTo(reqAttrs);

            if (!allow)
            {
                return(false);
            }

            var allowsFormat = operation.RestrictTo.HasAccessTo((EndpointAttributes)(long)format);

            return(allowsFormat);
        }
コード例 #2
0
        public bool IsVisible(IHttpRequest httpReq, Format format, string operationName)
        {
            if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions)
            {
                return(true);
            }

            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            if (operation == null)
            {
                return(false);
            }

            var isVisible = IsVisible(httpReq, operation);

            if (!isVisible)
            {
                return(false);
            }

            if (operation.RestrictTo == null)
            {
                return(true);
            }
            var allowsFormat = operation.RestrictTo.CanShowTo((EndpointAttributes)(long)format);

            return(allowsFormat);
        }
コード例 #3
0
        public HystrixCommand GetHystrixCommandByOpName(string operationName)
        {
            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            return(operation != null ? operation.HystrixCommand : null);
        }
コード例 #4
0
        public Type GetResponseTypeByOpName(string operationName)
        {
            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            return(operation != null ? operation.ResponseType : null);
        }
コード例 #5
0
        public Operation GetOperationByOpName(string operationName)
        {
            Operation op;

            OperationNameMap.TryGetValue(operationName.ToLower(), out op);
            return(op);
        }
コード例 #6
0
        public void AfterInit()
        {
            foreach (var restPath in Routes.RestPaths)
            {
                Operation operation;
                if (!OperationNameMap.TryGetValue(restPath.OperationName.ToLower(), out operation))
                {
                    continue;
                }

                operation.Routes.Add(restPath);
            }
        }