AllowedIncludesAttribute.OnActionExecuting (line 64) calls JsonApiQueryParser.Parse directly, bypassing the QueryComplexityAnalyzer.Validate step that runs in IJsonApiQueryParser. Two issues:
- Filter limits (count, depth, value length) are not enforced for actions decorated with
[AllowedIncludes].
- The same request is parsed twice (once in the attribute, once in the controller).
Acceptance criteria
AllowedIncludesAttribute.OnActionExecuting(line 64) callsJsonApiQueryParser.Parsedirectly, bypassing theQueryComplexityAnalyzer.Validatestep that runs inIJsonApiQueryParser. Two issues:[AllowedIncludes].Acceptance criteria
IJsonApiQueryParserfromcontext.HttpContext.RequestServicesQueryParametersis stashed (e.g. onHttpContext.Items) and reused by the controllerJsonApiOptions.MaxFiltersreturns 400 on a[AllowedIncludes]action[AllowedIncludes]integration tests still pass