public override void ChannelRead(IChannelHandlerContext context, object message) { if (message is IHttpRequest req) { this.request = req; var origin = request.Headers.Get(HttpHeaderNames.Origin, null); this.config = GetForOrigin(origin); if (IsPreflightRequest(req)) { this.HandlePreflight(context, req); return; } if (this.isShortCircuit && !(origin is null || this.config is object)) { Forbidden(context, req); return; } } _ = context.FireChannelRead(message); }
public CorsHandler(CorsConfig config) { Contract.Requires(config != null); this.config = config; }
public CorsHandler(CorsConfig config) : this(config is object?new List <CorsConfig>(new[] { config }) : null, config.IsShortCircuit) { }