@citrineos/util
Version:
The OCPP util module which supplies helpful utilities like cache and queue connectors, etc.
62 lines • 2.35 kB
JavaScript
// 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