113 lines
4.4 KiB
JavaScript
113 lines
4.4 KiB
JavaScript
/*! @azure/msal-common v14.4.0 2023-11-07 */
|
|
'use strict';
|
|
import { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.mjs';
|
|
import { Logger, LogLevel } from '../logger/Logger.mjs';
|
|
import { Constants } from '../utils/Constants.mjs';
|
|
import { version } from '../packageMetadata.mjs';
|
|
import { AzureCloudInstance } from '../authority/AuthorityOptions.mjs';
|
|
import { DefaultStorageClass } from '../cache/CacheManager.mjs';
|
|
import { ProtocolMode } from '../authority/ProtocolMode.mjs';
|
|
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
|
|
|
|
/*
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License.
|
|
*/
|
|
// Token renewal offset default in seconds
|
|
const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
|
|
const DEFAULT_SYSTEM_OPTIONS = {
|
|
tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
|
|
preventCorsPreflight: false,
|
|
};
|
|
const DEFAULT_LOGGER_IMPLEMENTATION = {
|
|
loggerCallback: () => {
|
|
// allow users to not set loggerCallback
|
|
},
|
|
piiLoggingEnabled: false,
|
|
logLevel: LogLevel.Info,
|
|
correlationId: Constants.EMPTY_STRING,
|
|
};
|
|
const DEFAULT_CACHE_OPTIONS = {
|
|
claimsBasedCachingEnabled: false,
|
|
};
|
|
const DEFAULT_NETWORK_IMPLEMENTATION = {
|
|
async sendGetRequestAsync() {
|
|
throw createClientAuthError(methodNotImplemented);
|
|
},
|
|
async sendPostRequestAsync() {
|
|
throw createClientAuthError(methodNotImplemented);
|
|
},
|
|
};
|
|
const DEFAULT_LIBRARY_INFO = {
|
|
sku: Constants.SKU,
|
|
version: version,
|
|
cpu: Constants.EMPTY_STRING,
|
|
os: Constants.EMPTY_STRING,
|
|
};
|
|
const DEFAULT_CLIENT_CREDENTIALS = {
|
|
clientSecret: Constants.EMPTY_STRING,
|
|
clientAssertion: undefined,
|
|
};
|
|
const DEFAULT_AZURE_CLOUD_OPTIONS = {
|
|
azureCloudInstance: AzureCloudInstance.None,
|
|
tenant: `${Constants.DEFAULT_COMMON_TENANT}`,
|
|
};
|
|
const DEFAULT_TELEMETRY_OPTIONS = {
|
|
application: {
|
|
appName: "",
|
|
appVersion: "",
|
|
},
|
|
};
|
|
/**
|
|
* Function that sets the default options when not explicitly configured from app developer
|
|
*
|
|
* @param Configuration
|
|
*
|
|
* @returns Configuration
|
|
*/
|
|
function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {
|
|
const loggerOptions = {
|
|
...DEFAULT_LOGGER_IMPLEMENTATION,
|
|
...userLoggerOption,
|
|
};
|
|
return {
|
|
authOptions: buildAuthOptions(userAuthOptions),
|
|
systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },
|
|
loggerOptions: loggerOptions,
|
|
cacheOptions: { ...DEFAULT_CACHE_OPTIONS, ...userCacheOptions },
|
|
storageInterface: storageImplementation ||
|
|
new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
|
|
networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
|
|
cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
|
|
clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
|
|
libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
|
|
telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
|
|
serverTelemetryManager: serverTelemetryManager || null,
|
|
persistencePlugin: persistencePlugin || null,
|
|
serializableCache: serializableCache || null,
|
|
};
|
|
}
|
|
/**
|
|
* Construct authoptions from the client and platform passed values
|
|
* @param authOptions
|
|
*/
|
|
function buildAuthOptions(authOptions) {
|
|
return {
|
|
clientCapabilities: [],
|
|
azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,
|
|
skipAuthorityMetadataCache: false,
|
|
...authOptions,
|
|
};
|
|
}
|
|
/**
|
|
* Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise
|
|
* @param ClientConfiguration
|
|
*/
|
|
function isOidcProtocolMode(config) {
|
|
return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
|
|
}
|
|
|
|
export { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration, isOidcProtocolMode };
|
|
//# sourceMappingURL=ClientConfiguration.mjs.map
|