* * Notice: * Query parameters must be encoded as UTF-8 to avoid hash conflicts on server side. Make sure that all data inside the hash is converted to lower case. * The timestamp is used to block requests that are older than a defined expire time. Make sure that the client has the correct UTF-8 time. If not the request will fail and returns the * current server date as header field "date". Uses this date to make a time correction client side and retry request with adjusted date time. * * It is also possible to use a different hash algorithm than SHA256. This can be set in header field "signatureMethod". * Currently this functionality is not implemented so default is SHA256. */ var _ = require('lodash') , MiaJs = require('mia-js-core') , Logger = MiaJs.Logger , Shared = require('mia-js-core').Shared , RateLimiter = require('mia-js-core').RateLimiter , AuthService = Shared.libs("generic-deviceAndSessionAuth") , Crypto = require('crypto') , Url = require('url') , IP = require('ip') , Translator = MiaJs.GetTranslations , SecretModel = Shared.models('generic-secret-model') , DeviceModel = Shared.models('generic-device-model') , Q = require('q'); Q.stopUnhandledRejectionTracking(); function thisModule() { var self = this; self.identity = 'generic-validateAccessKey'; // Controller name used in routes, policies and followups self.version = '1.0'; // Version number of service
/** * generic-accessKeyService * * @module :: Policy * @description :: Validates device access to retrieve a session key */ var _ = require('lodash') , MiaJs = require('mia-js-core') , Logger = require('mia-js-core').Logger , Shared = require('mia-js-core').Shared , AuthService = Shared.libs("generic-deviceAndSessionAuth"); function thisModule() { var self = this; self.identity = 'generic-accessKeyService'; // Controller name used in routes, policies and followups self.version = '1.0'; // Version number of service self.preconditions = { all: { parameters: { header: { key: { desc: "ApiKey", type: String, minLength: 64, maxLength: 64, required: true } },