diff --git a/package-lock.json b/package-lock.json index 4d34b3a..0e3ad4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@decodo/mcp-server", - "version": "1.2.3", + "version": "1.2.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@decodo/mcp-server", - "version": "1.2.3", + "version": "1.2.5", "license": "ISC", "dependencies": { "@decodo/sdk-ts": "^2.3.0", diff --git a/package.json b/package.json index 3c9796c..01d2f50 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@decodo/mcp-server", - "version": "1.2.4", + "version": "1.2.5", "description": "Decodo MCP Server", "bin": { "decodo-mcp": "./build/index.js" diff --git a/server.json b/server.json index 535a200..7ef2dd5 100644 --- a/server.json +++ b/server.json @@ -7,13 +7,13 @@ "url": "https://github.com/Decodo/mcp-server", "source": "github" }, - "version": "1.2.4", + "version": "1.2.5", "packages": [ { "registryType": "npm", "registryBaseUrl": "https://registry.npmjs.org", "identifier": "@decodo/mcp-server", - "version": "1.2.4", + "version": "1.2.5", "transport": { "type": "stdio" } diff --git a/src/auth/__tests__/credential.test.ts b/src/auth/__tests__/credential.test.ts index 970ae5f..f6a6dbb 100644 --- a/src/auth/__tests__/credential.test.ts +++ b/src/auth/__tests__/credential.test.ts @@ -58,8 +58,20 @@ describe('credentialFromAuthHeader', () => { }); }); - it('trusts the scheme over the shape of the value', () => { - expect(credentialFromAuthHeader(`Bearer ${base64('user:pass')}`)?.type).toBe(AUTH_TYPE.API_KEY); + it('detects an api key sent under Basic', () => { + const apiKey = 'a'.repeat(64); + + expect(credentialFromAuthHeader(`Basic ${apiKey}`)).toEqual({ + type: AUTH_TYPE.API_KEY, + value: apiKey, + }); + }); + + it('detects a token sent under Bearer', () => { + expect(credentialFromAuthHeader(`Bearer ${base64('user:pass')}`)).toEqual({ + type: AUTH_TYPE.TOKEN, + value: base64('user:pass'), + }); }); it('rejects an unknown scheme', () => { diff --git a/src/auth/credential.ts b/src/auth/credential.ts index 01a5637..4fca347 100644 --- a/src/auth/credential.ts +++ b/src/auth/credential.ts @@ -27,5 +27,9 @@ export const credentialFromAuthHeader = (header: string): AuthCredential | undef return; } - return toCredential(TYPE_BY_SCHEME[scheme], value); + if (!TYPE_BY_SCHEME[scheme]) { + return; + } + + return toCredential(detectCredentialType(value), value); }; diff --git a/src/server/__tests__/server-registration.test.ts b/src/server/__tests__/server-registration.test.ts index 9533cd4..a8616b8 100644 --- a/src/server/__tests__/server-registration.test.ts +++ b/src/server/__tests__/server-registration.test.ts @@ -25,7 +25,7 @@ describe('Server registration', () => { expect(McpServer).toHaveBeenCalledWith({ name: 'decodo', - version: '1.2.4', + version: '1.2.5', }); });