keycloak-lambda-authorizer
Version:
28 lines • 1.11 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultJWKS = void 0;
const node_forge_1 = __importDefault(require("node-forge"));
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const rsa_pem_to_jwk_1 = __importDefault(require("rsa-pem-to-jwk"));
class DefaultJWKS {
publicKeyTransform(publicKey) {
const m = /^-----BEGIN RSA PUBLIC KEY-----/.exec(publicKey);
if (m) {
return publicKey;
}
const certPem = node_forge_1.default.pki.certificateFromPem(publicKey);
let p = node_forge_1.default.pki.publicKeyToRSAPublicKeyPem(certPem.publicKey);
p = p.replace(/\r/g, '');
return p;
}
json(publicKey) {
const newPk = this.publicKeyTransform(publicKey.key);
return { keys: [(0, rsa_pem_to_jwk_1.default)(newPk, { use: 'sig' }, 'public')] };
}
}
exports.DefaultJWKS = DefaultJWKS;
//# sourceMappingURL=JWKS.js.map
;