@citrineos/util
Version:
The OCPP util module which supplies helpful utilities like cache and queue connectors, etc.
83 lines • 3.46 kB
JavaScript
;
/*
* // Copyright Contributors to the CitrineOS Project
* //
* // SPDX-License-Identifier: Apache 2.0
*
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LocalBypassAuthProvider = void 0;
const tslog_1 = require("tslog");
const base_1 = require("@citrineos/base");
/**
* A local bypass authentication provider that doesn't perform actual authentication
* Only for development and testing environments
*/
class LocalBypassAuthProvider {
/**
* Creates a new local bypass authentication provider
*
* @param logger Optional logger instance
*/
constructor(logger) {
this._logger = logger
? logger.getSubLogger({ name: this.constructor.name })
: new tslog_1.Logger({ name: this.constructor.name });
this._logger.warn('⚠️ WARNING: Using LocalBypassAuthProvider - This should only be used in development environments');
}
extractToken(_request) {
return __awaiter(this, void 0, void 0, function* () {
// Always return a dummy token for local bypass
this._logger.debug('LocalBypassAuthProvider.authenticateToken: Returning dummy token');
return 'local-bypass-token';
});
}
/**
* Always returns a successful authentication with admin user
*
* @param token Ignored, can be any string
* @returns Authentication result with admin user info
*/
authenticateToken(_token) {
return __awaiter(this, void 0, void 0, function* () {
this._logger.debug('LocalBypassAuthProvider.authenticateToken: Bypassing authentication, using dummy user');
// Create a default admin user
const user = {
id: 'local-admin',
name: 'Local Admin',
email: 'admin@local',
roles: ['admin', 'user'],
groups: ['administrators'],
tenantId: '1',
metadata: {
isLocalBypass: true,
},
};
return base_1.ApiAuthenticationResult.success(user);
});
}
/**
* Always returns a successful authorization
*
* @param user Ignored, can be any user
* @param request Ignored, can be any request
* @returns Always successful authorization
*/
authorizeUser(user, request) {
return __awaiter(this, void 0, void 0, function* () {
this._logger.debug(`LocalBypassAuthProvider.authorizeUser: Bypassing authorization for ${request.method} ${request.url}`);
return base_1.ApiAuthorizationResult.success();
});
}
}
exports.LocalBypassAuthProvider = LocalBypassAuthProvider;
//# sourceMappingURL=LocalByPassAuthProvider.js.map