@bitblit/ratchet-epsilon-common
Version:
Tiny adapter to simplify building API gateway Lambda APIS
40 lines • 1.64 kB
JavaScript
import { Logger } from '@bitblit/ratchet-common/logger/logger';
export class BuiltInAuthorizers {
static async simpleNoAuthenticationLogAccess(authorizationContext, evt) {
Logger.debug('Auth requested for %s : %j', evt.path, authorizationContext?.auth);
return true;
}
static async simpleLoggedInAuth(authorizationContext, evt) {
const rval = !!authorizationContext?.auth;
Logger.silly('SimpleLoggedInAuth returning %s for %s', rval, evt.path);
return rval;
}
static async simpleRoleRouteAuth(authorizationContext, event, route, requiredRoleOneOf = null, requiredRoleAllOf = null) {
let rval = true;
const token = authorizationContext?.auth;
if (token) {
if (requiredRoleOneOf) {
requiredRoleOneOf.forEach((r) => {
rval = rval || token.roles.indexOf(r) > -1;
});
if (!rval) {
Logger.warn('Request to %s failed to find at least one of %j', route.path, requiredRoleOneOf);
}
}
if (rval && requiredRoleAllOf) {
requiredRoleAllOf.forEach((r) => {
rval = rval && token.roles.indexOf(r) > -1;
});
if (!rval) {
Logger.warn('Request to %s failed to find all of %j', route.path, requiredRoleAllOf);
}
}
}
else {
Logger.warn('Cannot authenticate - no parsed auth found');
rval = false;
}
return rval;
}
}
//# sourceMappingURL=built-in-authorizers.js.map