69 lines
2.9 KiB
JavaScript
69 lines
2.9 KiB
JavaScript
/*! @azure/msal-node v5.2.2 2026-05-19 */
|
|
'use strict';
|
|
import { buildClientConfiguration, Logger, StubPerformanceClient, TokenProtocol } from '@azure/msal-common/node';
|
|
import { name, version } from '../packageMetadata.mjs';
|
|
|
|
/*
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License.
|
|
*/
|
|
/**
|
|
* Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.
|
|
* @internal
|
|
*/
|
|
class BaseClient {
|
|
constructor(configuration) {
|
|
// Set the configuration
|
|
this.config = buildClientConfiguration(configuration);
|
|
// Initialize the logger
|
|
this.logger = new Logger(this.config.loggerOptions, name, version);
|
|
// Initialize crypto
|
|
this.cryptoUtils = this.config.cryptoInterface;
|
|
// Initialize storage interface
|
|
this.cacheManager = this.config.storageInterface;
|
|
// Set the network interface
|
|
this.networkClient = this.config.networkInterface;
|
|
// Set TelemetryManager
|
|
this.serverTelemetryManager = this.config.serverTelemetryManager;
|
|
// set Authority
|
|
this.authority = this.config.authOptions.authority;
|
|
this.performanceClient = new StubPerformanceClient();
|
|
}
|
|
/**
|
|
* Creates default headers for requests to token endpoint
|
|
*/
|
|
createTokenRequestHeaders(ccsCred) {
|
|
return TokenProtocol.createTokenRequestHeaders(this.logger, false, ccsCred);
|
|
}
|
|
/**
|
|
* Http post to token endpoint
|
|
* @param tokenEndpoint
|
|
* @param queryString
|
|
* @param headers
|
|
* @param thumbprint
|
|
*/
|
|
async executePostToTokenEndpoint(tokenEndpoint, queryString, headers, thumbprint, correlationId) {
|
|
return TokenProtocol.executePostToTokenEndpoint(tokenEndpoint, queryString, headers, thumbprint, correlationId, this.cacheManager, this.networkClient, this.logger, this.performanceClient, this.serverTelemetryManager);
|
|
}
|
|
/**
|
|
* Wraps sendPostRequestAsync with necessary preflight and postflight logic
|
|
* @param thumbprint - Request thumbprint for throttling
|
|
* @param tokenEndpoint - Endpoint to make the POST to
|
|
* @param options - Body and Headers to include on the POST request
|
|
* @param correlationId - CorrelationId for telemetry
|
|
*/
|
|
async sendPostRequest(thumbprint, tokenEndpoint, options, correlationId) {
|
|
return TokenProtocol.sendPostRequest(thumbprint, tokenEndpoint, options, correlationId, this.cacheManager, this.networkClient, this.logger, this.performanceClient);
|
|
}
|
|
/**
|
|
* Creates query string for the /token request
|
|
* @param request
|
|
*/
|
|
createTokenQueryParameters(request) {
|
|
return TokenProtocol.createTokenQueryParameters(request, this.config.authOptions.clientId, this.config.authOptions.redirectUri, this.performanceClient);
|
|
}
|
|
}
|
|
|
|
export { BaseClient };
|
|
//# sourceMappingURL=BaseClient.mjs.map
|