public override object GetResponse(IHttpRequest httpReq, IHttpResponse httpRes, object request) { var response = ExecuteService(request, HandlerAttributes | httpReq.GetAttributes(), httpReq, httpRes); return response; }
public override object GetResponse(IHttpRequest httpReq, IHttpResponse httpRes, object request) { var requestContentType = ContentType.GetEndpointAttributes(httpReq.ResponseContentType); return(ExecuteService(request, HandlerAttributes | requestContentType | httpReq.GetAttributes(), httpReq, httpRes)); }
/// <summary>Process the request.</summary> /// /// <exception cref="Exception">Thrown when an exception error condition occurs.</exception> /// /// <param name="httpReq"> The HTTP request.</param> /// <param name="httpRes"> The HTTP resource.</param> /// <param name="operationName">Name of the operation.</param> public override void ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes, string operationName) { var isDebugRequest = httpReq.RawUrl.ToLower().Contains("debug"); if (!isDebugRequest) { base.ProcessRequest(httpReq, httpRes, operationName); return; } try { var request = CreateRequest(httpReq, operationName); var response = ExecuteService(request, HandlerAttributes | httpReq.GetAttributes(), httpReq, httpRes); WriteDebugResponse(httpRes, response); } catch (Exception ex) { if (!EndpointHost.Config.WriteErrorsToResponse) { throw; } HandleException(httpReq, httpRes, operationName, ex); } }
protected bool AssertAccess(IHttpRequest httpReq, IHttpResponse httpRes, string operationName) { if (!EndpointHost.Config.HasFeature(Feature.Metadata)) { EndpointHost.Config.HandleErrorResponse(httpReq, httpRes, HttpStatusCode.Forbidden, "Metadata Not Available"); return false; } if (EndpointHost.Config.MetadataVisibility != EndpointAttributes.Any) { var actualAttributes = httpReq.GetAttributes(); if ((actualAttributes & EndpointHost.Config.MetadataVisibility) != EndpointHost.Config.MetadataVisibility) { EndpointHost.Config.HandleErrorResponse(httpReq, httpRes, HttpStatusCode.Forbidden, "Metadata Not Visible"); return false; } } if (operationName == null) return true; //For non-operation pages we don't need to check further permissions if (!EndpointHost.Config.EnableAccessRestrictions) return true; if (!EndpointHost.Config.MetadataPagesConfig.IsVisible(httpReq, Format, operationName)) { EndpointHost.Config.HandleErrorResponse(httpReq, httpRes, HttpStatusCode.Forbidden, "Service Not Available"); return false; } return true; }
public override object GetResponse(IHttpRequest httpReq, IHttpResponse httpRes, object request) { var response = ExecuteService(request, HandlerAttributes | httpReq.GetAttributes(), httpReq, httpRes); return(response); }
public bool IsVisible(IHttpRequest httpReq, Operation operation) { if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions) { return(true); } if (operation.RestrictTo == null) { return(true); } //Less fine-grained on /metadata pages. Only check Network and Format var reqAttrs = httpReq.GetAttributes(); var showToNetwork = CanShowToNetwork(operation, reqAttrs); return(showToNetwork); }
public bool HasAccessToMetadata(IHttpRequest httpReq, IHttpResponse httpRes) { if (!HasFeature(Feature.Metadata)) { EndpointHost.Config.HandleErrorResponse(httpReq, httpRes, HttpStatusCode.Forbidden, "Metadata Not Available"); return(false); } if (MetadataVisibility != EndpointAttributes.Any) { var actualAttributes = httpReq.GetAttributes(); if ((actualAttributes & MetadataVisibility) != MetadataVisibility) { HandleErrorResponse(httpReq, httpRes, HttpStatusCode.Forbidden, "Metadata Not Visible"); return(false); } } return(true); }
public override void ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes, string operationName) { var isDebugRequest = httpReq.RawUrl.ToLower().Contains("debug"); if (!isDebugRequest) { base.ProcessRequest(httpReq, httpRes, operationName); return; } try { var request = CreateRequest(httpReq, operationName); var response = ExecuteService(request, HandlerAttributes | httpReq.GetAttributes(), httpReq, httpRes); WriteDebugResponse(httpRes, response); } catch (Exception ex) { if (!EndpointHost.Config.WriteErrorsToResponse) throw; HandleException(httpReq, httpRes, operationName, ex); } }
public bool CanAccess(IHttpRequest httpReq, Format format, string operationName) { var reqAttrs = httpReq.GetAttributes(); return CanAccess(reqAttrs, format, operationName); }
public bool IsVisible(IHttpRequest httpReq, Operation operation) { if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions) return true; if (operation.RestrictTo == null) return true; //Less fine-grained on /metadata pages. Only check Network and Format var reqAttrs = httpReq.GetAttributes(); var showToNetwork = CanShowToNetwork(operation, reqAttrs); return showToNetwork; }
public bool HasAccessToMetadata(IHttpRequest httpReq, IHttpResponse httpRes) { if (!HasFeature(Feature.Metadata)) { EndpointHost.Config.HandleErrorResponse(httpReq, httpRes, HttpStatusCode.Forbidden, "Metadata Not Available"); return false; } if (MetadataVisibility != EndpointAttributes.Any) { var actualAttributes = httpReq.GetAttributes(); if ((actualAttributes & MetadataVisibility) != MetadataVisibility) { HandleErrorResponse(httpReq, httpRes, HttpStatusCode.Forbidden, "Metadata Not Visible"); return false; } } return true; }
public override object GetResponse(IHttpRequest httpReq, IHttpResponse httpRes, object request) { var requestContentType = ContentType.GetEndpointAttributes(httpReq.ResponseContentType); return ExecuteService(request, HandlerAttributes | requestContentType | httpReq.GetAttributes(), httpReq, httpRes); }
public bool CanAccess(IHttpRequest httpReq, Format format, string operationName) { var reqAttrs = httpReq.GetAttributes(); return(CanAccess(reqAttrs, format, operationName)); }
public bool IsVisible(IHttpRequest httpReq, Format format, string operationName) { Operation operation; OperationNamesMap.TryGetValue(operationName.ToLower(), out operation); if (operation == null) return false; var reqAttrs = httpReq.GetAttributes(); var canCall = HasImplementation(operation, format); if (!canCall) return false; if (operation.RestrictTo == null) return true; var visbleToNetwork = CanShowToNetwork(operation, reqAttrs); if (!visbleToNetwork) return false; var allowsFormat = operation.RestrictTo.CanShowTo((EndpointAttributes)(long)format); return allowsFormat; }
public bool IsVisible(IHttpRequest httpReq, Format format, string operationName) { if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions) return true; Operation operation; OperationNamesMap.TryGetValue(operationName.ToLower(), out operation); if (operation == null) return false; var canCall = HasImplementation(operation, format); if (!canCall) return false; if (operation.RestrictTo == null) return true; //Less fine-grained on /metadata pages. Only check Network and Format var reqAttrs = httpReq.GetAttributes(); var showToNetwork = CanShowToNetwork(operation, reqAttrs); if (!showToNetwork) return false; var allowsFormat = operation.RestrictTo.CanShowTo((EndpointAttributes)(long)format); return allowsFormat; }