@azure/msal-common
Version:
Microsoft Authentication Library for js
211 lines (205 loc) • 9.83 kB
text/typescript
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
import { AuthError } from "./AuthError.js";
import * as ClientConfigurationErrorCodes from "./ClientConfigurationErrorCodes.js";
export { ClientConfigurationErrorCodes };
export const ClientConfigurationErrorMessages = {
[ ]:
"A redirect URI is required for all calls, and none has been set.",
[ ]:
"Could not parse the given claims request object.",
[ ]:
"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options",
[ ]:
"URL could not be parsed into appropriate segments.",
[ ]: "URL was empty or null.",
[ ]:
"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",
[ ]:
"Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest",
[ ]:
"Given claims parameter must be a stringified JSON object.",
[ ]:
"Token request was empty and not found in cache.",
[ ]:
"The logout request was null or undefined.",
[ ]:
'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',
[ ]:
"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",
[ ]:
"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",
[ ]:
"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",
[ ]:
"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",
[ ]:
"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",
[ ]:
"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",
[ ]:
"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.",
[ ]:
"Invalid authentication header provided",
[ ]:
"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",
[ ]:
"Cannot set allowPlatformBroker parameter to true when not in AAD protocol mode.",
[ ]:
"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority.",
};
/**
* ClientConfigurationErrorMessage class containing string constants used by error codes and messages.
* @deprecated Use ClientConfigurationErrorCodes instead
*/
export const ClientConfigurationErrorMessage = {
redirectUriNotSet: {
code: ClientConfigurationErrorCodes.redirectUriEmpty,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.redirectUriEmpty
],
},
claimsRequestParsingError: {
code: ClientConfigurationErrorCodes.claimsRequestParsingError,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.claimsRequestParsingError
],
},
authorityUriInsecure: {
code: ClientConfigurationErrorCodes.authorityUriInsecure,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.authorityUriInsecure
],
},
urlParseError: {
code: ClientConfigurationErrorCodes.urlParseError,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.urlParseError
],
},
urlEmptyError: {
code: ClientConfigurationErrorCodes.urlEmptyError,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.urlEmptyError
],
},
emptyScopesError: {
code: ClientConfigurationErrorCodes.emptyInputScopesError,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.emptyInputScopesError
],
},
invalidPrompt: {
code: ClientConfigurationErrorCodes.invalidPromptValue,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.invalidPromptValue
],
},
invalidClaimsRequest: {
code: ClientConfigurationErrorCodes.invalidClaims,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.invalidClaims
],
},
tokenRequestEmptyError: {
code: ClientConfigurationErrorCodes.tokenRequestEmpty,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.tokenRequestEmpty
],
},
logoutRequestEmptyError: {
code: ClientConfigurationErrorCodes.logoutRequestEmpty,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.logoutRequestEmpty
],
},
invalidCodeChallengeMethod: {
code: ClientConfigurationErrorCodes.invalidCodeChallengeMethod,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.invalidCodeChallengeMethod
],
},
invalidCodeChallengeParams: {
code: ClientConfigurationErrorCodes.pkceParamsMissing,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.pkceParamsMissing
],
},
invalidCloudDiscoveryMetadata: {
code: ClientConfigurationErrorCodes.invalidCloudDiscoveryMetadata,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.invalidCloudDiscoveryMetadata
],
},
invalidAuthorityMetadata: {
code: ClientConfigurationErrorCodes.invalidAuthorityMetadata,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.invalidAuthorityMetadata
],
},
untrustedAuthority: {
code: ClientConfigurationErrorCodes.untrustedAuthority,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.untrustedAuthority
],
},
missingSshJwk: {
code: ClientConfigurationErrorCodes.missingSshJwk,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.missingSshJwk
],
},
missingSshKid: {
code: ClientConfigurationErrorCodes.missingSshKid,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.missingSshKid
],
},
missingNonceAuthenticationHeader: {
code: ClientConfigurationErrorCodes.missingNonceAuthenticationHeader,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.missingNonceAuthenticationHeader
],
},
invalidAuthenticationHeader: {
code: ClientConfigurationErrorCodes.invalidAuthenticationHeader,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.invalidAuthenticationHeader
],
},
cannotSetOIDCOptions: {
code: ClientConfigurationErrorCodes.cannotSetOIDCOptions,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.cannotSetOIDCOptions
],
},
cannotAllowPlatformBroker: {
code: ClientConfigurationErrorCodes.cannotAllowPlatformBroker,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.cannotAllowPlatformBroker
],
},
authorityMismatch: {
code: ClientConfigurationErrorCodes.authorityMismatch,
desc: ClientConfigurationErrorMessages[
ClientConfigurationErrorCodes.authorityMismatch
],
},
};
/**
* Error thrown when there is an error in configuration of the MSAL.js library.
*/
export class ClientConfigurationError extends AuthError {
constructor(errorCode: string) {
super(errorCode, ClientConfigurationErrorMessages[errorCode]);
this.name = "ClientConfigurationError";
Object.setPrototypeOf(this, ClientConfigurationError.prototype);
}
}
export function createClientConfigurationError(
errorCode: string
): ClientConfigurationError {
return new ClientConfigurationError(errorCode);
}