fix: add CORS headers to all responses

Added EnableCors field,used to enable CORS support.

Enabled CORS in default request handler for all requests.
This commit is contained in:
jdevito
2023-02-20 15:27:02 -06:00
parent 71349e67a3
commit 8f47762409
2 changed files with 30 additions and 5 deletions

View File

@@ -6,5 +6,12 @@ namespace PepperDash.Core.Web.RequestHandlers
/// Web API default request handler /// Web API default request handler
/// </summary> /// </summary>
public class DefaultRequestRequestHandler : WebApiBaseRequestHandler public class DefaultRequestRequestHandler : WebApiBaseRequestHandler
{} {
/// <summary>
/// Constructor
/// </summary>
public DefaultRequestRequestHandler()
: base(true)
{ }
}
} }

View File

@@ -14,8 +14,10 @@ namespace PepperDash.Core.Web.RequestHandlers
/// <summary> /// <summary>
/// Constructor /// Constructor
/// </summary> /// </summary>
protected WebApiBaseRequestHandler() protected WebApiBaseRequestHandler(bool enableCors)
{ {
EnableCors = enableCors;
_handlers = new Dictionary<string, Action<HttpCwsContext>> _handlers = new Dictionary<string, Action<HttpCwsContext>>
{ {
{"CONNECT", HandleConnect}, {"CONNECT", HandleConnect},
@@ -30,6 +32,16 @@ namespace PepperDash.Core.Web.RequestHandlers
}; };
} }
/// <summary>
/// Constructor
/// </summary>
protected WebApiBaseRequestHandler()
: this(false)
{
}
protected readonly bool EnableCors;
/// <summary> /// <summary>
/// Handles CONNECT method requests /// Handles CONNECT method requests
/// </summary> /// </summary>
@@ -37,7 +49,7 @@ namespace PepperDash.Core.Web.RequestHandlers
protected virtual void HandleConnect(HttpCwsContext context) protected virtual void HandleConnect(HttpCwsContext context)
{ {
context.Response.StatusCode = 501; context.Response.StatusCode = 501;
context.Response.StatusDescription = "Not Implemented"; context.Response.StatusDescription = "Not Implemented";
context.Response.End(); context.Response.End();
} }
@@ -48,7 +60,7 @@ namespace PepperDash.Core.Web.RequestHandlers
protected virtual void HandleDelete(HttpCwsContext context) protected virtual void HandleDelete(HttpCwsContext context)
{ {
context.Response.StatusCode = 501; context.Response.StatusCode = 501;
context.Response.StatusDescription = "Not Implemented"; context.Response.StatusDescription = "Not Implemented";
context.Response.End(); context.Response.End();
} }
@@ -142,7 +154,13 @@ namespace PepperDash.Core.Web.RequestHandlers
return; return;
} }
if (EnableCors)
{
context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
context.Response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
}
handler(context); handler(context);
} }
} }
} }