azurite
Version:
An open source Azure Storage API compatible server
55 lines • 2.47 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.UnsupportedParametersBlocker = exports.UnsupportedHeadersBlocker = void 0;
const tslib_1 = require("tslib");
const BlobStorageContext_1 = tslib_1.__importDefault(require("../context/BlobStorageContext"));
const StrictModelNotSupportedError_1 = tslib_1.__importDefault(require("../errors/StrictModelNotSupportedError"));
const ExpressRequestAdapter_1 = tslib_1.__importDefault(require("../generated/ExpressRequestAdapter"));
const constants_1 = require("../utils/constants");
const UnsupportedHeadersBlocker = async (req, context, logger) => {
const UnsupportedHeaderKeys = [
constants_1.HeaderConstants.X_MS_CONTENT_CRC64,
constants_1.HeaderConstants.X_MS_RANGE_GET_CONTENT_CRC64,
constants_1.HeaderConstants.X_MS_ENCRYPTION_KEY,
constants_1.HeaderConstants.X_MS_ENCRYPTION_KEY_SHA256,
constants_1.HeaderConstants.X_MS_ENCRYPTION_ALGORITHM
];
for (const headerKey of UnsupportedHeaderKeys) {
const value = req.getHeader(headerKey);
if (typeof value === "string") {
throw new StrictModelNotSupportedError_1.default(headerKey, context.contextId);
}
}
};
exports.UnsupportedHeadersBlocker = UnsupportedHeadersBlocker;
const UnsupportedParametersBlocker = async (req, context, logger) => {
const UnsupportedParameterKeys = [];
for (const parameterKey of UnsupportedParameterKeys) {
const value = req.getQuery(parameterKey);
if (typeof value === "string") {
throw new StrictModelNotSupportedError_1.default(parameterKey, context.contextId);
}
}
};
exports.UnsupportedParametersBlocker = UnsupportedParametersBlocker;
class StrictModelMiddlewareFactory {
constructor(logger, validators) {
this.logger = logger;
this.validators = validators;
}
createStrictModelMiddleware() {
return (req, res, next) => {
this.validate(req, res)
.then(next)
.catch(next);
};
}
async validate(req, res) {
const context = new BlobStorageContext_1.default(res.locals, constants_1.DEFAULT_CONTEXT_PATH);
for (const validator of this.validators) {
await validator(new ExpressRequestAdapter_1.default(req), context, this.logger);
}
}
}
exports.default = StrictModelMiddlewareFactory;
//# sourceMappingURL=StrictModelMiddlewareFactory.js.map
;