MCPcopy
hub / github.com/scality/cloudserver / validateQueryAndHeaders

Function validateQueryAndHeaders

lib/utilities/validateQueryAndHeaders.js:24–64  ·  view source on GitHub ↗

* validateQueryAndHeaders - Check request for unsupported queries or headers * @param {object} request - request object * @param {object} log - Werelogs logger * @return {object} - empty object or object with error boolean property

(request, log)

Source from the content-addressed store, hash-verified

22 * @return {object} - empty object or object with error boolean property
23 */
24function validateQueryAndHeaders(request, log) {
25 const reqMethod = request.method;
26 const reqQuery = request.query;
27 const reqHeaders = request.headers;
28 const isBucketQuery = !request.objectKey;
29 // if the request is at bucket level, check for unsupported bucket queries
30 if (isBucketQuery) {
31 const unsupportedQuery =
32 _validateKeys(constants.unsupportedBucketQueries, reqQuery);
33 if (unsupportedQuery) {
34 log.debug('encountered unsupported query', {
35 query: unsupportedQuery,
36 method: 'validateQueryAndHeaders',
37 });
38 return { error: errors.NotImplemented };
39 }
40 }
41 const unsupportedQuery = _validateKeys(constants.unsupportedQueries,
42 reqQuery);
43 if (unsupportedQuery) {
44 log.debug('encountered unsupported query', {
45 query: unsupportedQuery,
46 method: 'validateQueryAndHeaders',
47 });
48 return { error: errors.NotImplemented };
49 }
50 const unsupportedHeader = _validateKeys(constants.unsupportedHeaders,
51 reqHeaders);
52 if (unsupportedHeader) {
53 log.debug('encountered unsupported header', {
54 header: unsupportedHeader,
55 method: 'validateQueryAndHeaders',
56 });
57 // for now only unsupported headers are encryption headers and we only
58 // return NotImplemented on a PUT
59 if (reqMethod.toUpperCase() === 'PUT') {
60 return { error: errors.NotImplemented };
61 }
62 }
63 return {};
64}
65
66module.exports = validateQueryAndHeaders;

Callers 1

callApiHandlerFunction · 0.85

Calls 2

_validateKeysFunction · 0.85
debugMethod · 0.80

Tested by

no test coverage detected