Skip to content

Commit

Permalink
Revert "[jwt] fix typo in option name"
Browse files Browse the repository at this point in the history
This reverts commit 367f266.
  • Loading branch information
EmrysMyrddin committed Sep 3, 2024
1 parent 367f266 commit d644d85
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 38 deletions.
5 changes: 0 additions & 5 deletions .changeset/slow-ads-dress.md

This file was deleted.

44 changes: 22 additions & 22 deletions packages/plugins/jwt/src/__tests__/jwt.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ I3OrgFkoqk03cpX4AL2GYC2ejytAqboL6pFTfmTgg2UtvKIeaTyF
describe('jwt plugin', () => {
test('incoming http request is reject when auth token is not present', async () => {
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
singingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
});
const response = await test.queryWithoutAuth();
expect(response.status).toBe(401);
Expand All @@ -62,7 +62,7 @@ describe('jwt plugin', () => {

test('should allow to continue if reject.missingToken is set to false', async () => {
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
singingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
reject: {
missingToken: false,
invalidToken: true,
Expand All @@ -75,7 +75,7 @@ describe('jwt plugin', () => {
test('any prefix is supported when strict prefix validation is not configured', async () => {
const secret = 'topsecret';
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenLookupLocations: [
extractFromHeader({
name: 'Authorization',
Expand All @@ -89,7 +89,7 @@ describe('jwt plugin', () => {

test('incoming http has a token but prefix does not match or missing', async () => {
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
singingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
});
// does not match prefix
let response = await test.queryWithAuth('Basic 123');
Expand Down Expand Up @@ -120,7 +120,7 @@ describe('jwt plugin', () => {

test('token provided but jwt token is not valid for decoding', async () => {
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
singingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
});
const response = await test.queryWithAuth('Bearer BadJwt');
expect(response.status).toBe(400);
Expand All @@ -137,7 +137,7 @@ describe('jwt plugin', () => {

test('invalid token can be accepted when reject.invalidToken=false is set', async () => {
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
singingKeyProviders: [createInlineSigningKeyProvider('topsecret')],
reject: {
invalidToken: false,
},
Expand All @@ -149,7 +149,7 @@ describe('jwt plugin', () => {
it('should not allow non matching issuer', async () => {
const secret = 'topsecret';
const server = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenVerification: {
issuer: ['http://yoga'],
},
Expand All @@ -168,7 +168,7 @@ describe('jwt plugin', () => {
it('should allow matching issuer', async () => {
const secret = 'topsecret';
const server = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenVerification: {
issuer: ['http://yoga'],
},
Expand All @@ -182,7 +182,7 @@ describe('jwt plugin', () => {
it('should not allow non matching audience', async () => {
const secret = 'topsecret';
const server = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenVerification: {
audience: 'my.app',
},
Expand All @@ -203,7 +203,7 @@ describe('jwt plugin', () => {
it('should allow matching audience', async () => {
const secret = 'topsecret';
const server = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenVerification: {
audience: 'my.app',
},
Expand Down Expand Up @@ -234,7 +234,7 @@ describe('jwt plugin', () => {

try {
const server = createTestServer({
signingKeyProviders: [
singingKeyProviders: [
createRemoteJwksSigningKeyProvider({
jwksUri: `http://localhost:${(jwksServer.address() as any).port}`,
}),
Expand All @@ -259,7 +259,7 @@ describe('jwt plugin', () => {
it('should not accept token without algorithm', async () => {
const secret = 'topsecret';
const server = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
});

const response = await server.queryWithAuth(buildJWTWithoutAlg());
Expand All @@ -276,7 +276,7 @@ describe('jwt plugin', () => {
test('valid token is injected to the GraphQL context', async () => {
const secret = 'topsecret';
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
});
const token = buildJWT({ sub: '123', scopes: ['users.read'] }, { key: secret });
const response = await test.queryWithAuth(token);
Expand All @@ -302,7 +302,7 @@ describe('jwt plugin', () => {
test('valid token is injected to the GraphQL context (custom field)', async () => {
const secret = 'topsecret';
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
extendContext: 'my_jwt',
});
const token = buildJWT({ sub: '123', scopes: ['users.read'] }, { key: secret });
Expand All @@ -329,7 +329,7 @@ describe('jwt plugin', () => {
test('auth is passing when token is valid (HS256)', async () => {
const secret = 'topsecret';
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
});
const token = buildJWT({ sub: '123' }, { key: secret });
const response = await test.queryWithAuth(token);
Expand All @@ -353,7 +353,7 @@ describe('jwt plugin', () => {

test('auth is passing when token is valid (RS256)', async () => {
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(JWKS_RSA512_PRIVATE_PEM)],
singingKeyProviders: [createInlineSigningKeyProvider(JWKS_RSA512_PRIVATE_PEM)],
});
const token = buildJWT({ sub: '123' }, { key: JWKS_RSA512_PRIVATE_PEM, algorithm: 'RS256' });
const response = await test.queryWithAuth(token);
Expand Down Expand Up @@ -397,7 +397,7 @@ describe('jwt plugin', () => {

try {
const test = createTestServer({
signingKeyProviders: [
singingKeyProviders: [
createRemoteJwksSigningKeyProvider({
jwksUri: `http://localhost:${(jwksServer.address() as any).port}`,
}),
Expand Down Expand Up @@ -438,7 +438,7 @@ describe('jwt plugin', () => {

try {
const test = createTestServer({
signingKeyProviders: [
singingKeyProviders: [
// Remote, invalid
createRemoteJwksSigningKeyProvider({
jwksUri: `http://localhost:${(jwksServer.address() as any).port}`,
Expand Down Expand Up @@ -476,7 +476,7 @@ describe('jwt plugin', () => {
test('should throw when lookup is configured for cookie but no cookie store available', async () => {
const secret = 'topsecret';
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenLookupLocations: [extractFromCookie({ name: 'auth' })],
});
const token = buildJWT({ sub: '123' }, { key: secret });
Expand All @@ -495,7 +495,7 @@ describe('jwt plugin', () => {
const secret = 'topsecret';
const test = createTestServer(
{
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenLookupLocations: [extractFromCookie({ name: 'auth' })],
},
[useCookies<any>()],
Expand All @@ -508,7 +508,7 @@ describe('jwt plugin', () => {
test('custom getToken functiFailed to verify authentication token. Verifon', async () => {
const secret = 'topsecret';
const test = createTestServer({
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenLookupLocations: [
async payload => {
expect(payload.request).toBeDefined();
Expand Down Expand Up @@ -539,7 +539,7 @@ describe('jwt plugin', () => {
const secret = 'topsecret';
const test = createTestServer(
{
signingKeyProviders: [createInlineSigningKeyProvider(secret)],
singingKeyProviders: [createInlineSigningKeyProvider(secret)],
tokenLookupLocations: [
extractFromHeader({
name: 'Authorization',
Expand Down
13 changes: 2 additions & 11 deletions packages/plugins/jwt/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ export type JwtPluginOptions = {
* If the first provider fails to fetch the keys, the plugin will try the next provider in the list.
*
*/
signingKeyProviders: AtleastOneItem<GetSigningKeyFunction>;
/**
* @deprecated: please use `signingKeyProviders` instead.
*/
singingKeyProviders: AtleastOneItem<GetSigningKeyFunction>;
/**
* List of locations to look for the token in the incoming request.
Expand Down Expand Up @@ -81,12 +77,7 @@ export type JwtPluginOptions = {
};

export function normalizeConfig(input: JwtPluginOptions) {
// TODO: remove this on next major version.
if (input.singingKeyProviders) {
input.signingKeyProviders = input.singingKeyProviders;
}

if (input.signingKeyProviders.length === 0) {
if (input.singingKeyProviders.length === 0) {
throw new TypeError(
'You must provide at least one signing key provider. Please verify your `singingKeyProviders` configuration.',
);
Expand All @@ -111,7 +102,7 @@ export function normalizeConfig(input: JwtPluginOptions) {
}

return {
singingKeyProviders: input.signingKeyProviders,
singingKeyProviders: input.singingKeyProviders,
tokenLookupLocations,
tokenVerification: input.tokenVerification ?? {
algorithms: ['RS256', 'HS256'],
Expand Down

0 comments on commit d644d85

Please sign in to comment.