@sap-cloud-sdk/core
Version:
SAP Cloud SDK for JavaScript core
52 lines • 2.15 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchVerificationKeys = void 0;
var util_1 = require("@sap-cloud-sdk/util");
var axios_1 = __importDefault(require("axios"));
var logger = (0, util_1.createLogger)({
package: 'core',
messageContext: 'xsuaa-service'
});
function fetchVerificationKeys(xsuaaUriOrCredentials, clientIdOrJku,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
clientSecret) {
// The case where the XsuaaServiceCredentials are given as object
if (typeof xsuaaUriOrCredentials !== 'string') {
if (!clientIdOrJku) {
logger.warn('JKU field from the JWT not provided. Use xsuaaClient.url/token_keys as fallback. ' +
'This will not work for subscriber accounts created after 14th of April 2020.' +
'Please provide the right URL given by the field `jku` in the JWT header.');
return executeFetchVerificationKeys("".concat(xsuaaUriOrCredentials.url, "/token_keys"));
}
return executeFetchVerificationKeys(clientIdOrJku);
}
// The three strings case
return executeFetchVerificationKeys(xsuaaUriOrCredentials);
}
exports.fetchVerificationKeys = fetchVerificationKeys;
// TODO: in v2 move this implementation to `fetchVerificationKeys`
function executeFetchVerificationKeys(url) {
var config = {
url: url,
method: 'GET'
};
return axios_1.default
.request(config)
.then(function (resp) { return resp.data.keys.map(function (k) { return (0, util_1.renameKeys)(tokenKeyKeyMapping, k); }); })
.catch(function (error) {
throw new util_1.ErrorWithCause("Failed to fetch verification keys from XSUAA service instance \"".concat(url, "\"."), error);
});
}
var tokenKeyKeyMapping = {
kty: 'keyType',
e: 'publicKeyExponent',
use: 'use',
kid: 'keyId',
alg: 'algorithm',
value: 'value',
n: 'publicKeyModulus'
};
//# sourceMappingURL=verification-keys.js.map
;