UNPKG

@citrineos/util

Version:

The OCPP util module which supplies helpful utilities like cache and queue connectors, etc.

62 lines 2.35 kB
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project // // SPDX-License-Identifier: Apache-2.0 import { Logger } from 'tslog'; import { ApiAuthenticationResult, ApiAuthorizationResult } from '@citrineos/base'; /** * A local bypass authentication provider that doesn't perform actual authentication * Only for development and testing environments */ export class LocalBypassAuthProvider { _logger; /** * Creates a new local bypass authentication provider * * @param logger Optional logger instance */ constructor(logger) { this._logger = logger ? logger.getSubLogger({ name: this.constructor.name }) : new Logger({ name: this.constructor.name }); this._logger.warn('⚠️ WARNING: Using LocalBypassAuthProvider - This should only be used in development environments'); } async extractToken(_request) { // 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 */ async authenticateToken(_token) { 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 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 */ async authorizeUser(user, request) { this._logger.debug(`LocalBypassAuthProvider.authorizeUser: Bypassing authorization for ${request.method} ${request.url}`); return ApiAuthorizationResult.success(); } } //# sourceMappingURL=LocalByPassAuthProvider.js.map