matrix-react-sdk
Version:
SDK for matrix.org using React
49 lines (45 loc) • 6.42 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getOidcClientId = void 0;
var _logger = require("matrix-js-sdk/src/logger");
var _matrix = require("matrix-js-sdk/src/matrix");
var _PlatformPeg = _interopRequireDefault(require("../../PlatformPeg"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
/**
* Get the statically configured clientId for the issuer
* @param issuer delegated auth OIDC issuer
* @param staticOidcClients static client config from config.json
* @returns clientId if found, otherwise undefined
*/
const getStaticOidcClientId = (issuer, staticOidcClients) => {
// static_oidc_clients are configured with a trailing slash
const issuerWithTrailingSlash = issuer.endsWith("/") ? issuer : issuer + "/";
return staticOidcClients?.[issuerWithTrailingSlash]?.client_id;
};
/**
* Get the clientId for an OIDC OP
* Checks statically configured clientIds first
* Then attempts dynamic registration with the OP
* @param delegatedAuthConfig Auth config from ValidatedServerConfig
* @param staticOidcClients static client config from config.json
* @returns Promise<string> resolves with clientId
* @throws if no clientId is found
*/
const getOidcClientId = async (delegatedAuthConfig, staticOidcClients) => {
const staticClientId = getStaticOidcClientId(delegatedAuthConfig.metadata.issuer, staticOidcClients);
if (staticClientId) {
_logger.logger.debug(`Using static clientId for issuer ${delegatedAuthConfig.metadata.issuer}`);
return staticClientId;
}
return await (0, _matrix.registerOidcClient)(delegatedAuthConfig, await _PlatformPeg.default.get().getOidcClientMetadata());
};
exports.getOidcClientId = getOidcClientId;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9tYXRyaXgiLCJfUGxhdGZvcm1QZWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZ2V0U3RhdGljT2lkY0NsaWVudElkIiwiaXNzdWVyIiwic3RhdGljT2lkY0NsaWVudHMiLCJpc3N1ZXJXaXRoVHJhaWxpbmdTbGFzaCIsImVuZHNXaXRoIiwiY2xpZW50X2lkIiwiZ2V0T2lkY0NsaWVudElkIiwiZGVsZWdhdGVkQXV0aENvbmZpZyIsInN0YXRpY0NsaWVudElkIiwibWV0YWRhdGEiLCJsb2dnZXIiLCJkZWJ1ZyIsInJlZ2lzdGVyT2lkY0NsaWVudCIsIlBsYXRmb3JtUGVnIiwiZ2V0IiwiZ2V0T2lkY0NsaWVudE1ldGFkYXRhIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9vaWRjL3JlZ2lzdGVyQ2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9sb2dnZXJcIjtcbmltcG9ydCB7IHJlZ2lzdGVyT2lkY0NsaWVudCwgT2lkY0NsaWVudENvbmZpZyB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHsgSUNvbmZpZ09wdGlvbnMgfSBmcm9tIFwiLi4vLi4vSUNvbmZpZ09wdGlvbnNcIjtcbmltcG9ydCBQbGF0Zm9ybVBlZyBmcm9tIFwiLi4vLi4vUGxhdGZvcm1QZWdcIjtcblxuLyoqXG4gKiBHZXQgdGhlIHN0YXRpY2FsbHkgY29uZmlndXJlZCBjbGllbnRJZCBmb3IgdGhlIGlzc3VlclxuICogQHBhcmFtIGlzc3VlciBkZWxlZ2F0ZWQgYXV0aCBPSURDIGlzc3VlclxuICogQHBhcmFtIHN0YXRpY09pZGNDbGllbnRzIHN0YXRpYyBjbGllbnQgY29uZmlnIGZyb20gY29uZmlnLmpzb25cbiAqIEByZXR1cm5zIGNsaWVudElkIGlmIGZvdW5kLCBvdGhlcndpc2UgdW5kZWZpbmVkXG4gKi9cbmNvbnN0IGdldFN0YXRpY09pZGNDbGllbnRJZCA9IChcbiAgICBpc3N1ZXI6IHN0cmluZyxcbiAgICBzdGF0aWNPaWRjQ2xpZW50cz86IElDb25maWdPcHRpb25zW1wib2lkY19zdGF0aWNfY2xpZW50c1wiXSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gc3RhdGljX29pZGNfY2xpZW50cyBhcmUgY29uZmlndXJlZCB3aXRoIGEgdHJhaWxpbmcgc2xhc2hcbiAgICBjb25zdCBpc3N1ZXJXaXRoVHJhaWxpbmdTbGFzaCA9IGlzc3Vlci5lbmRzV2l0aChcIi9cIikgPyBpc3N1ZXIgOiBpc3N1ZXIgKyBcIi9cIjtcbiAgICByZXR1cm4gc3RhdGljT2lkY0NsaWVudHM/Lltpc3N1ZXJXaXRoVHJhaWxpbmdTbGFzaF0/LmNsaWVudF9pZDtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBjbGllbnRJZCBmb3IgYW4gT0lEQyBPUFxuICogQ2hlY2tzIHN0YXRpY2FsbHkgY29uZmlndXJlZCBjbGllbnRJZHMgZmlyc3RcbiAqIFRoZW4gYXR0ZW1wdHMgZHluYW1pYyByZWdpc3RyYXRpb24gd2l0aCB0aGUgT1BcbiAqIEBwYXJhbSBkZWxlZ2F0ZWRBdXRoQ29uZmlnIEF1dGggY29uZmlnIGZyb20gVmFsaWRhdGVkU2VydmVyQ29uZmlnXG4gKiBAcGFyYW0gc3RhdGljT2lkY0NsaWVudHMgc3RhdGljIGNsaWVudCBjb25maWcgZnJvbSBjb25maWcuanNvblxuICogQHJldHVybnMgUHJvbWlzZTxzdHJpbmc+IHJlc29sdmVzIHdpdGggY2xpZW50SWRcbiAqIEB0aHJvd3MgaWYgbm8gY2xpZW50SWQgaXMgZm91bmRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE9pZGNDbGllbnRJZCA9IGFzeW5jIChcbiAgICBkZWxlZ2F0ZWRBdXRoQ29uZmlnOiBPaWRjQ2xpZW50Q29uZmlnLFxuICAgIHN0YXRpY09pZGNDbGllbnRzPzogSUNvbmZpZ09wdGlvbnNbXCJvaWRjX3N0YXRpY19jbGllbnRzXCJdLFxuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICBjb25zdCBzdGF0aWNDbGllbnRJZCA9IGdldFN0YXRpY09pZGNDbGllbnRJZChkZWxlZ2F0ZWRBdXRoQ29uZmlnLm1ldGFkYXRhLmlzc3Vlciwgc3RhdGljT2lkY0NsaWVudHMpO1xuICAgIGlmIChzdGF0aWNDbGllbnRJZCkge1xuICAgICAgICBsb2dnZXIuZGVidWcoYFVzaW5nIHN0YXRpYyBjbGllbnRJZCBmb3IgaXNzdWVyICR7ZGVsZWdhdGVkQXV0aENvbmZpZy5tZXRhZGF0YS5pc3N1ZXJ9YCk7XG4gICAgICAgIHJldHVybiBzdGF0aWNDbGllbnRJZDtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHJlZ2lzdGVyT2lkY0NsaWVudChkZWxlZ2F0ZWRBdXRoQ29uZmlnLCBhd2FpdCBQbGF0Zm9ybVBlZy5nZXQoKSEuZ2V0T2lkY0NsaWVudE1ldGFkYXRhKCkpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQVpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1JLHFCQUFxQixHQUFHQSxDQUMxQkMsTUFBYyxFQUNkQyxpQkFBeUQsS0FDcEM7RUFDckI7RUFDQSxNQUFNQyx1QkFBdUIsR0FBR0YsTUFBTSxDQUFDRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUdILE1BQU0sR0FBR0EsTUFBTSxHQUFHLEdBQUc7RUFDNUUsT0FBT0MsaUJBQWlCLEdBQUdDLHVCQUF1QixDQUFDLEVBQUVFLFNBQVM7QUFDbEUsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQyxlQUFlLEdBQUcsTUFBQUEsQ0FDM0JDLG1CQUFxQyxFQUNyQ0wsaUJBQXlELEtBQ3ZDO0VBQ2xCLE1BQU1NLGNBQWMsR0FBR1IscUJBQXFCLENBQUNPLG1CQUFtQixDQUFDRSxRQUFRLENBQUNSLE1BQU0sRUFBRUMsaUJBQWlCLENBQUM7RUFDcEcsSUFBSU0sY0FBYyxFQUFFO0lBQ2hCRSxjQUFNLENBQUNDLEtBQUssQ0FBQyxvQ0FBb0NKLG1CQUFtQixDQUFDRSxRQUFRLENBQUNSLE1BQU0sRUFBRSxDQUFDO0lBQ3ZGLE9BQU9PLGNBQWM7RUFDekI7RUFDQSxPQUFPLE1BQU0sSUFBQUksMEJBQWtCLEVBQUNMLG1CQUFtQixFQUFFLE1BQU1NLG9CQUFXLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQUVDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBQUNDLE9BQUEsQ0FBQVYsZUFBQSxHQUFBQSxlQUFBIiwiaWdub3JlTGlzdCI6W119