@nitrostack/core 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +17 -0
- package/dist/auth/middleware.js.map +1 -1
- package/dist/auth/token-validation.d.ts.map +1 -1
- package/dist/auth/token-validation.js +12 -2
- package/dist/auth/token-validation.js.map +1 -1
- package/dist/core/app-decorator.d.ts +6 -0
- package/dist/core/app-decorator.d.ts.map +1 -1
- package/dist/core/app-decorator.js +5 -3
- package/dist/core/app-decorator.js.map +1 -1
- package/dist/core/builders.d.ts.map +1 -1
- package/dist/core/builders.js +14 -4
- package/dist/core/builders.js.map +1 -1
- package/dist/core/decorators.d.ts +30 -0
- package/dist/core/decorators.d.ts.map +1 -1
- package/dist/core/decorators.js +42 -4
- package/dist/core/decorators.js.map +1 -1
- package/dist/core/di/container.d.ts +18 -0
- package/dist/core/di/container.d.ts.map +1 -1
- package/dist/core/di/container.js +31 -0
- package/dist/core/di/container.js.map +1 -1
- package/dist/core/di/injectable.decorator.d.ts.map +1 -1
- package/dist/core/di/injectable.decorator.js +2 -1
- package/dist/core/di/injectable.decorator.js.map +1 -1
- package/dist/core/events/event.decorator.d.ts.map +1 -1
- package/dist/core/events/event.decorator.js +2 -1
- package/dist/core/events/event.decorator.js.map +1 -1
- package/dist/core/index.d.ts +4 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/lifecycle.d.ts +44 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +62 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/oauth-module.d.ts +76 -5
- package/dist/core/oauth-module.d.ts.map +1 -1
- package/dist/core/oauth-module.js +343 -83
- package/dist/core/oauth-module.js.map +1 -1
- package/dist/core/pipes/pipe.decorator.d.ts.map +1 -1
- package/dist/core/pipes/pipe.decorator.js +2 -1
- package/dist/core/pipes/pipe.decorator.js.map +1 -1
- package/dist/core/prompt.d.ts +0 -3
- package/dist/core/prompt.d.ts.map +1 -1
- package/dist/core/prompt.js +28 -1
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/server.d.ts +39 -26
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +222 -102
- package/dist/core/server.js.map +1 -1
- package/dist/core/transports/streamable-http.d.ts +64 -61
- package/dist/core/transports/streamable-http.d.ts.map +1 -1
- package/dist/core/transports/streamable-http.js +1591 -823
- package/dist/core/transports/streamable-http.js.map +1 -1
- package/package.json +5 -7
|
@@ -55,6 +55,8 @@ import 'reflect-metadata';
|
|
|
55
55
|
import { Injectable, Inject } from './di/injectable.decorator.js';
|
|
56
56
|
import { NitroStackServer } from './server.js';
|
|
57
57
|
import { DiscoveryHttpServer } from './transports/discovery-http-server.js';
|
|
58
|
+
import { createAuthMiddleware } from '../auth/middleware.js';
|
|
59
|
+
import { validateToken as authValidateToken } from '../auth/token-validation.js';
|
|
58
60
|
let OAuthModule = class OAuthModule {
|
|
59
61
|
static { OAuthModule_1 = this; }
|
|
60
62
|
config;
|
|
@@ -63,16 +65,218 @@ let OAuthModule = class OAuthModule {
|
|
|
63
65
|
static config = null;
|
|
64
66
|
static discoveryInfo = null;
|
|
65
67
|
discoveryServer = null;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
// Cache of upstream authorization-server metadata to avoid re-fetching on every request.
|
|
69
|
+
// `data` is null for a (short-lived) negative cache entry.
|
|
70
|
+
static discoveryMetadataCache = new Map();
|
|
71
|
+
// In-flight fetches, keyed by auth server, to de-duplicate concurrent cache misses.
|
|
72
|
+
static discoveryMetadataInflight = new Map();
|
|
73
|
+
/** Max time to wait for an upstream metadata document before giving up. */
|
|
74
|
+
static UPSTREAM_FETCH_TIMEOUT_MS = 4000;
|
|
75
|
+
/** How long to remember that an upstream lookup failed, to avoid refetch storms. */
|
|
76
|
+
static NEGATIVE_CACHE_TTL_MS = 30_000;
|
|
77
|
+
async fetchUpstreamMetadata(authServer) {
|
|
78
|
+
const now = Date.now();
|
|
79
|
+
const cached = OAuthModule_1.discoveryMetadataCache.get(authServer);
|
|
80
|
+
if (cached && cached.expires > now) {
|
|
81
|
+
return cached.data;
|
|
82
|
+
}
|
|
83
|
+
// De-duplicate concurrent cache-miss fetches for the same authorization server.
|
|
84
|
+
const inflight = OAuthModule_1.discoveryMetadataInflight.get(authServer);
|
|
85
|
+
if (inflight) {
|
|
86
|
+
return inflight;
|
|
87
|
+
}
|
|
88
|
+
const fetchPromise = (async () => {
|
|
89
|
+
let metadata = null;
|
|
90
|
+
for (const suffix of ['/.well-known/openid-configuration', '/.well-known/oauth-authorization-server']) {
|
|
91
|
+
const controller = new AbortController();
|
|
92
|
+
const timeout = setTimeout(() => controller.abort(), OAuthModule_1.UPSTREAM_FETCH_TIMEOUT_MS);
|
|
93
|
+
try {
|
|
94
|
+
const response = await fetch(`${authServer}${suffix}`, { signal: controller.signal });
|
|
95
|
+
if (response.ok) {
|
|
96
|
+
metadata = (await response.json());
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
this.logger.debug(`OAuthModule: upstream metadata fetch failed for ${authServer}${suffix}`, {
|
|
102
|
+
error: e instanceof Error ? e.message : String(e),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
clearTimeout(timeout);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const positiveTtlMs = (this.config.tokenCacheSeconds ?? 300) * 1000;
|
|
110
|
+
OAuthModule_1.discoveryMetadataCache.set(authServer, {
|
|
111
|
+
data: metadata,
|
|
112
|
+
expires: Date.now() + (metadata ? positiveTtlMs : OAuthModule_1.NEGATIVE_CACHE_TTL_MS),
|
|
113
|
+
});
|
|
114
|
+
return metadata;
|
|
115
|
+
})();
|
|
116
|
+
OAuthModule_1.discoveryMetadataInflight.set(authServer, fetchPromise);
|
|
117
|
+
try {
|
|
118
|
+
return await fetchPromise;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
OAuthModule_1.discoveryMetadataInflight.delete(authServer);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
buildBaseUrl(req) {
|
|
125
|
+
// Prefer the configured, trusted resourceUri origin so advertised URLs are
|
|
126
|
+
// not derived from client-controlled Host / X-Forwarded-Proto headers
|
|
127
|
+
// (host-header injection). Fall back to request headers only if resourceUri
|
|
128
|
+
// is missing or unparseable.
|
|
129
|
+
try {
|
|
130
|
+
if (this.config.resourceUri) {
|
|
131
|
+
return new URL(this.config.resourceUri).origin;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// fall through to header-derived base
|
|
136
|
+
}
|
|
137
|
+
const reqHeaders = req?.headers ?? {};
|
|
138
|
+
const rawHost = reqHeaders.host;
|
|
139
|
+
const host = (Array.isArray(rawHost) ? rawHost[0] : rawHost) || 'localhost:3000';
|
|
140
|
+
const rawProto = reqHeaders['x-forwarded-proto'];
|
|
141
|
+
let proto = Array.isArray(rawProto) ? rawProto[0] : rawProto;
|
|
142
|
+
if (!proto) {
|
|
143
|
+
if (host.includes('localhost') || host.includes('127.0.0.1')) {
|
|
144
|
+
proto = 'http';
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
proto = process.env.NODE_ENV === 'production' ? 'https' : 'http';
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return `${proto}://${host}`;
|
|
151
|
+
}
|
|
152
|
+
wellKnownHandler = async (req, res) => {
|
|
153
|
+
const headers = {
|
|
154
|
+
'Content-Type': 'application/json',
|
|
155
|
+
'Access-Control-Allow-Origin': '*',
|
|
156
|
+
'Access-Control-Allow-Methods': 'GET, OPTIONS',
|
|
157
|
+
'Access-Control-Allow-Headers': 'Content-Type, Accept, Authorization',
|
|
158
|
+
};
|
|
159
|
+
const registrationEndpoint = this.isClientRegistrationEnabled()
|
|
160
|
+
? `${this.buildBaseUrl(req)}/oauth/v2/register`
|
|
161
|
+
: undefined;
|
|
162
|
+
try {
|
|
163
|
+
const authServer = this.config.authorizationServers[0];
|
|
164
|
+
const upstream = await this.fetchUpstreamMetadata(authServer);
|
|
165
|
+
if (upstream) {
|
|
166
|
+
// Clone before mutating so the cached object stays pristine
|
|
167
|
+
const metadata = { ...upstream };
|
|
168
|
+
// Inject registration_endpoint to satisfy strict client schema validation (Cursor/OpenAI)
|
|
169
|
+
if (registrationEndpoint && !metadata.registration_endpoint) {
|
|
170
|
+
metadata.registration_endpoint = registrationEndpoint;
|
|
171
|
+
}
|
|
172
|
+
res.writeHead(200, headers);
|
|
173
|
+
res.end(JSON.stringify(metadata));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
this.logger.debug('OAuthModule: failed to serve upstream authorization-server metadata; using fallback', {
|
|
179
|
+
error: err instanceof Error ? err.message : String(err),
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
// Fallback compliant with RFC 8414 / OIDC metadata schema
|
|
183
|
+
const fallbackMetadata = {
|
|
184
|
+
issuer: this.config.issuer || this.config.authorizationServers[0],
|
|
185
|
+
authorization_endpoint: `${this.config.authorizationServers[0]}/oauth/v2/authorize`,
|
|
186
|
+
token_endpoint: `${this.config.authorizationServers[0]}/oauth/v2/token`,
|
|
187
|
+
introspection_endpoint: this.config.tokenIntrospectionEndpoint || `${this.config.authorizationServers[0]}/oauth/v2/introspect`,
|
|
188
|
+
jwks_uri: this.config.jwksUri || `${this.config.authorizationServers[0]}/oauth/v2/keys`,
|
|
189
|
+
response_types_supported: ['code'],
|
|
190
|
+
grant_types_supported: ['authorization_code', 'client_credentials', 'refresh_token'],
|
|
191
|
+
subject_types_supported: ['public'],
|
|
192
|
+
id_token_signing_alg_values_supported: ['RS256'],
|
|
193
|
+
code_challenge_methods_supported: ['S256'],
|
|
194
|
+
};
|
|
195
|
+
if (registrationEndpoint) {
|
|
196
|
+
fallbackMetadata.registration_endpoint = registrationEndpoint;
|
|
197
|
+
}
|
|
198
|
+
res.writeHead(200, headers);
|
|
199
|
+
res.end(JSON.stringify(fallbackMetadata));
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Whether the static Dynamic Client Registration endpoint is enabled.
|
|
203
|
+
* Requires explicit opt-in AND a configured client id (never a literal default).
|
|
204
|
+
*/
|
|
205
|
+
isClientRegistrationEnabled() {
|
|
206
|
+
const enabled = this.config.enableClientRegistration === true
|
|
207
|
+
|| process.env.OAUTH_ENABLE_CLIENT_REGISTRATION === 'true';
|
|
208
|
+
const clientId = this.config.staticClientId || process.env.OAUTH_CLIENT_ID;
|
|
209
|
+
return enabled && !!clientId;
|
|
210
|
+
}
|
|
211
|
+
registrationHandler = async (req, res) => {
|
|
212
|
+
const headers = {
|
|
213
|
+
'Content-Type': 'application/json',
|
|
214
|
+
'Access-Control-Allow-Origin': '*',
|
|
215
|
+
'Access-Control-Allow-Methods': 'POST, OPTIONS',
|
|
216
|
+
'Access-Control-Allow-Headers': 'Content-Type, Accept, Authorization',
|
|
217
|
+
};
|
|
218
|
+
if (req.method === 'OPTIONS') {
|
|
219
|
+
res.writeHead(200, headers);
|
|
220
|
+
res.end('');
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// Registration is opt-in. Without explicit config + a configured client id we
|
|
224
|
+
// must not hand out any client credentials.
|
|
225
|
+
if (!this.isClientRegistrationEnabled()) {
|
|
226
|
+
res.writeHead(404, headers);
|
|
227
|
+
res.end(JSON.stringify({ error: 'not_found', error_description: 'Client registration is not enabled' }));
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
// Read and parse request body if not already parsed (for raw http.IncomingMessage)
|
|
231
|
+
let body = {};
|
|
232
|
+
if (req.body && typeof req.body === 'object') {
|
|
233
|
+
body = req.body;
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
try {
|
|
237
|
+
const buffers = [];
|
|
238
|
+
for await (const chunk of req) {
|
|
239
|
+
buffers.push(chunk);
|
|
240
|
+
}
|
|
241
|
+
const data = Buffer.concat(buffers).toString();
|
|
242
|
+
if (data) {
|
|
243
|
+
body = JSON.parse(data);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
catch (e) {
|
|
247
|
+
this.logger.debug('OAuthModule: failed to parse client registration request body', {
|
|
248
|
+
error: e instanceof Error ? e.message : String(e),
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Client credentials come strictly from configuration / environment. No literal defaults.
|
|
253
|
+
const clientId = this.config.staticClientId || process.env.OAUTH_CLIENT_ID;
|
|
254
|
+
const clientSecret = this.config.staticClientSecret || process.env.OAUTH_CLIENT_SECRET || '';
|
|
255
|
+
const responsePayload = {
|
|
256
|
+
client_id: clientId,
|
|
257
|
+
client_secret: clientSecret,
|
|
258
|
+
client_id_issued_at: Math.floor(Date.now() / 1000),
|
|
259
|
+
client_secret_expires_at: 0,
|
|
260
|
+
grant_types: body.grant_types || ['authorization_code', 'refresh_token'],
|
|
261
|
+
response_types: body.response_types || ['code'],
|
|
262
|
+
token_endpoint_auth_method: body.token_endpoint_auth_method || (clientSecret ? 'client_secret_post' : 'none'),
|
|
263
|
+
redirect_uris: body.redirect_uris || [],
|
|
264
|
+
};
|
|
265
|
+
res.writeHead(200, headers);
|
|
266
|
+
res.end(JSON.stringify(responsePayload));
|
|
73
267
|
};
|
|
74
268
|
resourceMetadataHandler = (req, res) => {
|
|
75
|
-
|
|
269
|
+
const headers = {
|
|
270
|
+
'Content-Type': 'application/json',
|
|
271
|
+
'Access-Control-Allow-Origin': '*',
|
|
272
|
+
'Access-Control-Allow-Methods': 'GET, OPTIONS',
|
|
273
|
+
'Access-Control-Allow-Headers': 'Content-Type, Accept, Authorization',
|
|
274
|
+
};
|
|
275
|
+
if (req?.method === 'OPTIONS') {
|
|
276
|
+
res.writeHead(200, headers);
|
|
277
|
+
res.end('');
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
76
280
|
// RFC 9728 - Protected Resource Metadata format
|
|
77
281
|
const metadata = {
|
|
78
282
|
resource: this.config.resourceUri,
|
|
@@ -82,6 +286,7 @@ let OAuthModule = class OAuthModule {
|
|
|
82
286
|
if (this.config.scopesSupported && this.config.scopesSupported.length > 0) {
|
|
83
287
|
metadata.scopes_supported = this.config.scopesSupported;
|
|
84
288
|
}
|
|
289
|
+
res.writeHead(200, headers);
|
|
85
290
|
res.end(JSON.stringify(metadata));
|
|
86
291
|
};
|
|
87
292
|
constructor(config, server, logger) {
|
|
@@ -99,19 +304,41 @@ let OAuthModule = class OAuthModule {
|
|
|
99
304
|
* Priority: OAUTH_DISCOVERY_PORT > MCP_SERVER_PORT > PORT > config > 3005
|
|
100
305
|
*/
|
|
101
306
|
getPreferredPort() {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return
|
|
307
|
+
const parsePort = (value) => {
|
|
308
|
+
if (!value)
|
|
309
|
+
return null;
|
|
310
|
+
const parsed = parseInt(value, 10);
|
|
311
|
+
return Number.isNaN(parsed) ? null : parsed;
|
|
312
|
+
};
|
|
313
|
+
return (parsePort(process.env.OAUTH_DISCOVERY_PORT) ??
|
|
314
|
+
parsePort(process.env.MCP_SERVER_PORT) ??
|
|
315
|
+
parsePort(process.env.PORT) ??
|
|
316
|
+
this.config.http?.port ??
|
|
317
|
+
3005);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Emit a clear, one-time startup log describing the current enforcement mode,
|
|
321
|
+
* so a misconfigured or intentionally-open server is obvious in the logs.
|
|
322
|
+
*/
|
|
323
|
+
logEnforcementMode() {
|
|
324
|
+
const hasVerifier = !!this.config.jwksUri || !!this.config.tokenIntrospectionEndpoint;
|
|
325
|
+
if (!this.config.required) {
|
|
326
|
+
this.logger.warn('OAuthModule: authentication is NOT enforced (OAUTH_REQUIRED is not "true"). ' +
|
|
327
|
+
'Protected endpoints are reachable without a token. ' +
|
|
328
|
+
'Set OAUTH_REQUIRED=true (and configure JWKS_URI or INTROSPECTION_ENDPOINT) before deploying.');
|
|
329
|
+
return;
|
|
107
330
|
}
|
|
108
|
-
if (
|
|
109
|
-
|
|
331
|
+
if (!hasVerifier) {
|
|
332
|
+
this.logger.warn('OAuthModule: OAUTH_REQUIRED is enabled but no token verifier is configured ' +
|
|
333
|
+
'(set JWKS_URI or INTROSPECTION_ENDPOINT). The server will start, but ALL ' +
|
|
334
|
+
'authenticated requests will be rejected (fail-closed) until a verifier is configured.');
|
|
335
|
+
return;
|
|
110
336
|
}
|
|
111
|
-
|
|
337
|
+
this.logger.info('OAuthModule: authentication is enforced (OAUTH_REQUIRED=true) with a configured token verifier.');
|
|
112
338
|
}
|
|
113
339
|
async start() {
|
|
114
340
|
this.logger.info('OAuthModule: start method called');
|
|
341
|
+
this.logEnforcementMode();
|
|
115
342
|
const transportType = this.server._transportType;
|
|
116
343
|
const preferredPort = this.getPreferredPort();
|
|
117
344
|
// Enable auto-retry by default in dev mode (stdio) to avoid port conflicts
|
|
@@ -136,9 +363,37 @@ let OAuthModule = class OAuthModule {
|
|
|
136
363
|
else {
|
|
137
364
|
this.logger.info(`OAuthModule: Running in ${transportType} mode, registering handlers with main server`);
|
|
138
365
|
// In http or dual mode, register the handlers with the main server
|
|
139
|
-
const httpTransport = this.server.
|
|
366
|
+
const httpTransport = this.server.getHttpTransport();
|
|
140
367
|
if (httpTransport) {
|
|
141
368
|
this.registerDiscoveryHandlers(httpTransport);
|
|
369
|
+
// Retrieve Express app and register auth middleware BEFORE routes are compiled.
|
|
370
|
+
// Enforcement is gated on `required`: when auth is not enforced, we leave the
|
|
371
|
+
// discovery endpoints in place but do not mount the token-validating middleware.
|
|
372
|
+
const app = httpTransport.getApp?.();
|
|
373
|
+
if (app && this.config.required) {
|
|
374
|
+
const authMiddleware = createAuthMiddleware({
|
|
375
|
+
resourceUri: this.config.resourceUri,
|
|
376
|
+
authorizationServers: this.config.authorizationServers,
|
|
377
|
+
scopesSupported: this.config.scopesSupported,
|
|
378
|
+
tokenIntrospectionEndpoint: this.config.tokenIntrospectionEndpoint,
|
|
379
|
+
tokenIntrospectionClientId: this.config.tokenIntrospectionClientId,
|
|
380
|
+
tokenIntrospectionClientSecret: this.config.tokenIntrospectionClientSecret,
|
|
381
|
+
audience: this.config.audience,
|
|
382
|
+
issuer: this.config.issuer,
|
|
383
|
+
jwksUri: this.config.jwksUri,
|
|
384
|
+
tokenCacheSeconds: this.config.tokenCacheSeconds,
|
|
385
|
+
});
|
|
386
|
+
const basePath = this.config.http?.basePath || '/mcp';
|
|
387
|
+
// Express 4 `app.use(basePath, ...)` already matches basePath and all
|
|
388
|
+
// of its subpaths, so a separate `${basePath}/*` mount is redundant.
|
|
389
|
+
app.use(basePath, authMiddleware);
|
|
390
|
+
app.use('/sse', authMiddleware);
|
|
391
|
+
app.use('/mcp/messages', authMiddleware);
|
|
392
|
+
this.logger.info(`OAuthModule: Registered auth middleware on ${basePath} (and subpaths), /sse, and /mcp/messages`);
|
|
393
|
+
}
|
|
394
|
+
else if (app && !this.config.required) {
|
|
395
|
+
this.logger.info('OAuthModule: auth enforcement disabled (OAUTH_REQUIRED not set); skipping auth middleware');
|
|
396
|
+
}
|
|
142
397
|
// In HTTP mode, use the configured port
|
|
143
398
|
this.updateDiscoveryInfo(preferredPort);
|
|
144
399
|
}
|
|
@@ -199,6 +454,9 @@ let OAuthModule = class OAuthModule {
|
|
|
199
454
|
registerDiscoveryHandlers(server) {
|
|
200
455
|
server.on('/.well-known/oauth-authorization-server', this.wellKnownHandler);
|
|
201
456
|
server.on('/.well-known/oauth-protected-resource', this.resourceMetadataHandler);
|
|
457
|
+
if (this.isClientRegistrationEnabled()) {
|
|
458
|
+
server.on('/oauth/v2/register', this.registrationHandler);
|
|
459
|
+
}
|
|
202
460
|
}
|
|
203
461
|
/**
|
|
204
462
|
* Get the current OAuth discovery info
|
|
@@ -218,15 +476,34 @@ let OAuthModule = class OAuthModule {
|
|
|
218
476
|
if (!config.authorizationServers || config.authorizationServers.length === 0) {
|
|
219
477
|
throw new Error('OAuthModule: at least one authorizationServer is required');
|
|
220
478
|
}
|
|
221
|
-
//
|
|
222
|
-
|
|
223
|
-
|
|
479
|
+
// Clone so env-derived defaults never mutate the caller's object.
|
|
480
|
+
const resolved = { ...config };
|
|
481
|
+
// Resolve defaults from environment variables
|
|
482
|
+
if (!resolved.jwksUri && process.env.JWKS_URI) {
|
|
483
|
+
resolved.jwksUri = process.env.JWKS_URI;
|
|
224
484
|
}
|
|
225
|
-
|
|
485
|
+
if (!resolved.audience) {
|
|
486
|
+
resolved.audience = process.env.TOKEN_AUDIENCE || resolved.resourceUri;
|
|
487
|
+
}
|
|
488
|
+
if (!resolved.issuer && process.env.TOKEN_ISSUER) {
|
|
489
|
+
resolved.issuer = process.env.TOKEN_ISSUER;
|
|
490
|
+
}
|
|
491
|
+
// Enforcement gate: explicit config wins, otherwise OAUTH_REQUIRED env, default false.
|
|
492
|
+
resolved.required = config.required ?? (process.env.OAUTH_REQUIRED === 'true');
|
|
493
|
+
// Eager URL format checks
|
|
494
|
+
if (resolved.jwksUri) {
|
|
495
|
+
try {
|
|
496
|
+
new URL(resolved.jwksUri);
|
|
497
|
+
}
|
|
498
|
+
catch (err) {
|
|
499
|
+
throw new Error(`OAuthModule: Invalid configuration value for jwksUri: ${err.message}`);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
this.config = resolved;
|
|
226
503
|
return {
|
|
227
504
|
module: OAuthModule_1,
|
|
228
505
|
providers: [
|
|
229
|
-
{ provide: 'OAUTH_CONFIG', useValue:
|
|
506
|
+
{ provide: 'OAUTH_CONFIG', useValue: resolved }
|
|
230
507
|
],
|
|
231
508
|
};
|
|
232
509
|
}
|
|
@@ -236,6 +513,15 @@ let OAuthModule = class OAuthModule {
|
|
|
236
513
|
static getConfig() {
|
|
237
514
|
return this.config;
|
|
238
515
|
}
|
|
516
|
+
/**
|
|
517
|
+
* Whether OAuth authentication is enforced.
|
|
518
|
+
*
|
|
519
|
+
* Returns `false` when the module is unconfigured or `required` is not `true`,
|
|
520
|
+
* in which case protected endpoints are reachable without a token.
|
|
521
|
+
*/
|
|
522
|
+
static isAuthRequired() {
|
|
523
|
+
return this.config?.required === true;
|
|
524
|
+
}
|
|
239
525
|
/**
|
|
240
526
|
* Validate an access token
|
|
241
527
|
*
|
|
@@ -265,25 +551,46 @@ let OAuthModule = class OAuthModule {
|
|
|
265
551
|
catch (headerError) {
|
|
266
552
|
// If header decode fails, continue with normal validation
|
|
267
553
|
}
|
|
268
|
-
// If introspection
|
|
269
|
-
if (this.config.tokenIntrospectionEndpoint) {
|
|
270
|
-
|
|
554
|
+
// If introspection or JWKS is configured, delegate to token-validation.ts pipeline
|
|
555
|
+
if (this.config.tokenIntrospectionEndpoint || this.config.jwksUri) {
|
|
556
|
+
const result = await authValidateToken(token, this.config);
|
|
557
|
+
if (!result.valid || !result.introspection) {
|
|
558
|
+
return { valid: false, error: result.error || 'Invalid token' };
|
|
559
|
+
}
|
|
560
|
+
// Custom validation
|
|
561
|
+
if (this.config.customValidation) {
|
|
562
|
+
const customValid = await this.config.customValidation(result.introspection);
|
|
563
|
+
if (!customValid) {
|
|
564
|
+
return { valid: false, error: 'Custom validation failed' };
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
return { valid: true, payload: result.introspection };
|
|
271
568
|
}
|
|
272
|
-
//
|
|
273
|
-
//
|
|
569
|
+
// No cryptographic verifier configured. Fail closed unless the caller has
|
|
570
|
+
// explicitly opted into the insecure, signature-less decode fallback.
|
|
571
|
+
if (!this.config.allowInsecureTokenDecode) {
|
|
572
|
+
return {
|
|
573
|
+
valid: false,
|
|
574
|
+
error: 'No token validation method configured. Set tokenIntrospectionEndpoint or jwksUri (or enable allowInsecureTokenDecode for local development).',
|
|
575
|
+
};
|
|
576
|
+
}
|
|
577
|
+
// Insecure fallback: decode token directly WITHOUT signature verification.
|
|
578
|
+
// Only reachable when allowInsecureTokenDecode is true.
|
|
274
579
|
const payload = this.decodeToken(token);
|
|
275
580
|
if (!payload) {
|
|
276
581
|
return { valid: false, error: 'Invalid token format' };
|
|
277
582
|
}
|
|
278
|
-
// Validate audience (RFC 8707 - critical for security)
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
583
|
+
// Validate audience (RFC 8707 - critical for security). Fail closed when
|
|
584
|
+
// the token carries no audience claim.
|
|
585
|
+
if (!payload.aud) {
|
|
586
|
+
return { valid: false, error: 'Token missing required audience (aud) claim' };
|
|
587
|
+
}
|
|
588
|
+
const audiences = Array.isArray(payload.aud) ? payload.aud : [payload.aud];
|
|
589
|
+
if (!audiences.includes(this.config.audience)) {
|
|
590
|
+
return {
|
|
591
|
+
valid: false,
|
|
592
|
+
error: `Token audience mismatch. Expected: ${this.config.audience}, Got: ${audiences.join(', ')}`,
|
|
593
|
+
};
|
|
287
594
|
}
|
|
288
595
|
// Validate issuer
|
|
289
596
|
if (this.config.issuer && payload.iss !== this.config.issuer) {
|
|
@@ -310,53 +617,6 @@ let OAuthModule = class OAuthModule {
|
|
|
310
617
|
return { valid: false, error: error instanceof Error ? error.message : String(error) };
|
|
311
618
|
}
|
|
312
619
|
}
|
|
313
|
-
/**
|
|
314
|
-
* Introspect token using RFC 7662
|
|
315
|
-
* @private
|
|
316
|
-
*/
|
|
317
|
-
static async introspectToken(token) {
|
|
318
|
-
if (!this.config?.tokenIntrospectionEndpoint) {
|
|
319
|
-
return { valid: false, error: 'Introspection endpoint not configured' };
|
|
320
|
-
}
|
|
321
|
-
try {
|
|
322
|
-
const auth = Buffer.from(`${this.config.tokenIntrospectionClientId}:${this.config.tokenIntrospectionClientSecret}`).toString('base64');
|
|
323
|
-
const response = await fetch(this.config.tokenIntrospectionEndpoint, {
|
|
324
|
-
method: 'POST',
|
|
325
|
-
headers: {
|
|
326
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
327
|
-
'Authorization': `Basic ${auth}`,
|
|
328
|
-
},
|
|
329
|
-
body: new URLSearchParams({
|
|
330
|
-
token: token,
|
|
331
|
-
token_type_hint: 'access_token',
|
|
332
|
-
}),
|
|
333
|
-
});
|
|
334
|
-
if (!response.ok) {
|
|
335
|
-
return {
|
|
336
|
-
valid: false,
|
|
337
|
-
error: `Introspection failed: ${response.status} ${response.statusText}`,
|
|
338
|
-
};
|
|
339
|
-
}
|
|
340
|
-
const result = await response.json();
|
|
341
|
-
if (!result.active) {
|
|
342
|
-
return { valid: false, error: 'Token is not active' };
|
|
343
|
-
}
|
|
344
|
-
// Validate audience from introspection response
|
|
345
|
-
if (result.aud) {
|
|
346
|
-
const audiences = Array.isArray(result.aud) ? result.aud : [result.aud];
|
|
347
|
-
if (!audiences.includes(this.config.audience)) {
|
|
348
|
-
return {
|
|
349
|
-
valid: false,
|
|
350
|
-
error: `Token audience mismatch. Expected: ${this.config.audience}`,
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
return { valid: true, payload: result };
|
|
355
|
-
}
|
|
356
|
-
catch (error) {
|
|
357
|
-
return { valid: false, error: `Introspection error: ${error instanceof Error ? error.message : String(error)}` };
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
620
|
/**
|
|
361
621
|
* Decode JWT token (without validation)
|
|
362
622
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-module.js","sourceRoot":"","sources":["../../src/core/oauth-module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-module.js","sourceRoot":"","sources":["../../src/core/oauth-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/pipes/pipe.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,IAAI,cAAc,CAIrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAUrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"pipe.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/pipes/pipe.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,IAAI,cAAc,CAIrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAUrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAYpE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,EAAE,CAE/F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAErH;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAExD"}
|
|
@@ -50,7 +50,8 @@ export function Body(...pipes) {
|
|
|
50
50
|
return (target, propertyKey, parameterIndex) => {
|
|
51
51
|
if (!propertyKey)
|
|
52
52
|
return;
|
|
53
|
-
|
|
53
|
+
// Clone to avoid mutating a parent class's param-pipe object when subclassing.
|
|
54
|
+
const existingParams = { ...(Reflect.getMetadata(PARAM_PIPES_KEY, target, propertyKey) || {}) };
|
|
54
55
|
existingParams[parameterIndex] = {
|
|
55
56
|
type: 'body',
|
|
56
57
|
pipes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.decorator.js","sourceRoot":"","sources":["../../../src/core/pipes/pipe.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AACnC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,KAAwB;IAClD,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC/E,OAAO,CAAC,cAAc,CACpB,QAAQ,EACR,CAAC,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC,EAC5B,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAAC,GAAG,KAAwB;IAC9C,OAAO,CAAC,MAAc,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QAC1F,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"pipe.decorator.js","sourceRoot":"","sources":["../../../src/core/pipes/pipe.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AACnC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,KAAwB;IAClD,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC/E,OAAO,CAAC,cAAc,CACpB,QAAQ,EACR,CAAC,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC,EAC5B,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAAC,GAAG,KAAwB;IAC9C,OAAO,CAAC,MAAc,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QAC1F,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,+EAA+E;QAC/E,MAAM,cAAc,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAChG,cAAc,CAAC,cAAc,CAAC,GAAG;YAC/B,IAAI,EAAE,MAAM;YACZ,KAAK;SACN,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,EAAE,CAAC,CAAC,+CAA+C;AAChE,CAAC;AAUD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,WAA4B;IAC1E,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,WAA4B;IAChF,OAAO,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,MAAwB;IAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;AAC3D,CAAC"}
|
package/dist/core/prompt.d.ts
CHANGED
|
@@ -8,9 +8,6 @@ interface McpPrompt {
|
|
|
8
8
|
description: string;
|
|
9
9
|
arguments: PromptArgument[];
|
|
10
10
|
}
|
|
11
|
-
/**
|
|
12
|
-
* Prompt class provides a clean abstraction for defining and executing prompts
|
|
13
|
-
*/
|
|
14
11
|
export declare class Prompt {
|
|
15
12
|
private definition;
|
|
16
13
|
constructor(definition: PromptDefinition);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/core/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAc,MAAM,YAAY,CAAC;AAGhI;;GAEG;AACH,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/core/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAc,MAAM,YAAY,CAAC;AAGhI;;GAEG;AACH,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAiCD,qBAAa,MAAM;IACjB,OAAO,CAAC,UAAU,CAAmB;gBAEzB,UAAU,EAAE,gBAAgB;IAIxC;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,cAAc,EAAE,CAEhC;IAED;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqB7G;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,WAAW,IAAI,SAAS;CAWzB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAEjE"}
|