@berlingske-media/bm.node-module.gateway_jwt
Version:
AuthGateway JWT verification library based on public JWKS endpoint
40 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const JwksClient_1 = require("../JwksClient");
const keys_1 = require("../keys");
const express_1 = tslib_1.__importDefault(require("express"));
describe('JwksClient (interceptor)', () => {
const jwksHost = 'http://localhost:5556';
let server;
let app;
beforeAll(() => {
server = (0, express_1.default)();
server.get('/.well-known/jwks.json', function (req, res) {
return res.status(200).json({ keys: keys_1.keys });
});
app = server.listen({ port: 5556 });
});
afterAll(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
yield new Promise((resolve) => app.close(resolve));
}));
describe('#getSigningKeys', () => {
it('should prefer key from interceptor', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const client = new JwksClient_1.JwksClient({
jwksUri: `${jwksHost}/.well-known/jwks.json`,
getKeysInterceptor: () => Promise.resolve(keys_1.keys[1]),
});
const key = yield client.getSigningKey('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA');
expect(key.kid).toEqual('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA');
}));
it('should fallback to fetch from jwksUri', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const client = new JwksClient_1.JwksClient({
jwksUri: `${jwksHost}/.well-known/jwks.json`,
getKeysInterceptor: () => Promise.resolve([]),
});
const key = yield client.getSigningKey('RkI5MjI5OUY5ODc1N0Q4QzM0OUYzNkVGMTJDOUEzQkFCOTU3NjE2Rg');
expect(key.kid).toEqual('RkI5MjI5OUY5ODc1N0Q4QzM0OUYzNkVGMTJDOUEzQkFCOTU3NjE2Rg');
}));
});
});
//# sourceMappingURL=interceptor.test.js.map