@hmcts/rpx-xui-node-lib 2.30.10-additional-logging-rc14 → 2.30.10-exui-3994

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.
@@ -33,7 +33,6 @@ export declare abstract class Strategy extends events.EventEmitter {
33
33
  setCredentialToken: (req: Request) => Promise<void>;
34
34
  generateToken: () => Promise<any | undefined>;
35
35
  verifyLogin: (req: Request, user: any, next: NextFunction, res: Response) => void;
36
- debugSessionStore: (req: Request, label: string) => void;
37
36
  initializePassport: () => void;
38
37
  initializeSession: () => void;
39
38
  initializeKeepAlive: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.class.d.ts","sourceRoot":"","sources":["../../../src/auth/models/strategy.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy.class.d.ts","sourceRoot":"","sources":["../../../src/auth/models/strategy.class.ts"],"names":[],"mappings":"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"}
@@ -52,8 +52,7 @@ const auth_constants_1 = require("../auth.constants");
52
52
  const common_1 = require("../../common");
53
53
  const joi_1 = __importDefault(require("joi"));
54
54
  const URL = __importStar(require("url"));
55
- // Removed manual state management; keep import commented if future generator use needed
56
- // import { generators } from 'openid-client'
55
+ const openid_client_1 = require("openid-client");
57
56
  const csurf_1 = __importDefault(require("@dr.pogodin/csurf"));
58
57
  const jwt_decode_1 = __importDefault(require("jwt-decode"));
59
58
  class Strategy extends events.EventEmitter {
@@ -94,48 +93,21 @@ class Strategy extends events.EventEmitter {
94
93
  /* istanbul ignore next */
95
94
  this.loginHandler = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
96
95
  this.logger.log('Base loginHandler Hit');
97
- this.logger.log(`loginHandler request URL: ${req.url}`);
98
- this.logger.log(`loginHandler request method: ${req.method}`);
99
- this.logger.log(`loginHandler query params: ${JSON.stringify(req.query)}`);
100
- this.logger.log(`loginHandler request headers: ${JSON.stringify(req.headers)}`);
101
96
  const reqSession = req.session;
102
- this.logger.log(`loginHandler session ID: ${req.sessionID}`);
103
- this.logger.log(`loginHandler session exists: ${!!reqSession}`);
104
- this.logger.log(`loginHandler callbackURL from session: ${reqSession === null || reqSession === void 0 ? void 0 : reqSession.callbackURL}`);
105
- if (this.options.sessionKey) {
106
- const sessionKey = this.options.sessionKey;
107
- this.logger.log(`loginHandler sessionKey: ${sessionKey}`);
108
- this.logger.log(`loginHandler existing session data for key ${sessionKey}: ${JSON.stringify(reqSession[sessionKey])}`);
109
- }
110
- else {
111
- this.logger.log('loginHandler: sessionKey not set in options');
112
- }
113
- const loginInProgress = reqSession.loginInProgress === true;
114
- if (loginInProgress) {
115
- this.logger.log('loginHandler: login already in progress, not invoking passport again');
116
- return ((_req, _res, _next) => { });
117
- }
118
- reqSession.loginInProgress = true;
119
- this.logger.log('loginHandler: flagged loginInProgress=true');
97
+ const { promise, state } = this.saveStateInSession(reqSession);
120
98
  /* istanbul ignore next */
121
99
  try {
122
100
  /* istanbul ignore next */
101
+ yield promise;
123
102
  /* istanbul ignore next */
124
- this.logger.log('calling passport authenticate (no custom state override)');
125
- this.logger.log(`loginHandler passport authenticate options: ${JSON.stringify({
126
- redirect_uri: reqSession === null || reqSession === void 0 ? void 0 : reqSession.callbackURL,
127
- keepSessionInfo: false,
128
- })}`);
103
+ this.logger.log('calling passport authenticate with state ' + state);
129
104
  /* istanbul ignore next */
130
105
  return passport_1.default.authenticate(this.strategyName, {
131
106
  redirect_uri: reqSession === null || reqSession === void 0 ? void 0 : reqSession.callbackURL,
107
+ state,
132
108
  keepSessionInfo: false,
133
109
  }, (error, user, info) => {
134
- var _a, _b;
135
- this.logger.log('loginHandler passport authenticate callback invoked');
136
- this.logger.log(`loginHandler passport callback - error: ${error ? JSON.stringify(error) : 'none'}`);
137
- this.logger.log(`loginHandler passport callback - user exists: ${!!user}`);
138
- this.logger.log(`loginHandler passport callback - info: ${info ? JSON.stringify(info) : 'none'}`);
110
+ var _a;
139
111
  /* istanbul ignore next */
140
112
  if (error) {
141
113
  this.logger.error('passport authenticate error ', JSON.stringify(error));
@@ -148,19 +120,15 @@ class Strategy extends events.EventEmitter {
148
120
  if (!user) {
149
121
  const message = 'No user details returned by the authentication service, redirecting to login';
150
122
  this.logger.log(message);
151
- this.logger.log('loginHandler: no user returned, this should trigger redirect to authorization server');
152
123
  }
153
124
  else {
154
125
  this.logger.log('User details from passport.authenticate ' + ((_a = user.userInfo) === null || _a === void 0 ? void 0 : _a.email));
155
- this.logger.log(`loginHandler: user authentication successful, email: ${(_b = user.userInfo) === null || _b === void 0 ? void 0 : _b.email}`);
156
- this.logger.log(`loginHandler: user data: ${JSON.stringify(user, null, 2)}`);
157
126
  }
158
127
  })(req, res, next);
159
128
  /* istanbul ignore next */
160
129
  }
161
130
  catch (error) {
162
131
  this.logger.error('Exception in passport.authenticate', error, this.strategyName);
163
- this.logger.error(`loginHandler exception details: ${JSON.stringify(error)}`);
164
132
  next(error);
165
133
  return Promise.reject(error);
166
134
  }
@@ -169,28 +137,17 @@ class Strategy extends events.EventEmitter {
169
137
  this.setCallbackURL = (req, _res, next) => {
170
138
  var _a;
171
139
  const reqSession = req.session;
172
- this.logger.log('setCallbackURL called');
173
- this.logger.log(reqSession);
174
- // Unconditionally enable trust proxy early so secure cookies / req.secure work on first hit
175
- if (!req.app.get('trust proxy')) {
176
- req.app.set('trust proxy', true);
177
- this.logger.log('setCallbackURL: trust proxy enabled (unconditional)');
178
- }
179
- else {
180
- this.logger.log('setCallbackURL: trust proxy already enabled');
181
- }
182
- // Always ensure callbackURL exists and is normalized
140
+ // Always ensure callbackURL is set (not just when missing)
183
141
  if (!reqSession.callbackURL || typeof reqSession.callbackURL !== 'string') {
142
+ req.app.set('trust proxy', true);
143
+ // fallback to default if this.options.callbackURL is missing
184
144
  const pathname = this.options.callbackURL || req.originalUrl;
185
145
  reqSession.callbackURL = URL.format({
186
146
  protocol: req.protocol,
187
147
  host: req.get('host'),
188
148
  pathname,
189
149
  });
190
- this.logger.log(`setCallbackURL: callbackURL initialised to ${reqSession.callbackURL}`);
191
- }
192
- else {
193
- this.logger.log(`setCallbackURL: existing callbackURL=${reqSession.callbackURL}`);
150
+ this.logger.log(`callbackURL was missing — set to: ${reqSession.callbackURL}`);
194
151
  }
195
152
  // 🔍 Log current config and session key status
196
153
  this.logger.log(`setCallbackURL, options.callbackurl: ${this.options.callbackURL}`);
@@ -274,65 +231,44 @@ class Strategy extends events.EventEmitter {
274
231
  };
275
232
  /* istanbul ignore next */
276
233
  this.configure = (options) => {
277
- this.logger.log('=== CONFIGURE START ===');
278
- this.logger.log(`configure: strategy ${this.strategyName}`);
279
- this.logger.log(`configure: options received: ${JSON.stringify(options, null, 2)}`);
280
234
  const configuredOptions = Object.assign(Object.assign({}, this.options), options);
281
235
  this.validateOptions(configuredOptions);
282
236
  this.options = configuredOptions;
283
- this.logger.log('configure: setting up serializers');
284
237
  this.serializeUser();
285
238
  this.deserializeUser();
286
- this.logger.log('configure: initializing strategy asynchronously');
287
239
  (() => __awaiter(this, void 0, void 0, function* () {
288
- try {
289
- this.logger.log('configure: calling initialiseStrategy');
290
- yield this.initialiseStrategy(this.options);
291
- this.logger.log('configure: initialiseStrategy completed successfully');
292
- }
293
- catch (error) {
294
- this.logger.error('configure: error in initialiseStrategy', error);
295
- }
240
+ yield this.initialiseStrategy(this.options);
296
241
  }))();
297
- this.logger.log('configure: initializing passport components');
298
242
  this.initializePassport();
299
243
  this.initializeSession();
300
244
  this.initializeKeepAlive();
301
245
  this.initialiseCSRF();
302
246
  if (options.useRoutes) {
303
- this.logger.log('configure: setting up routes');
304
247
  this.router.get(auth_constants_1.AUTH.ROUTE.DEFAULT_AUTH_ROUTE, this.authRouteHandler);
305
248
  this.router.get(auth_constants_1.AUTH.ROUTE.KEEPALIVE_ROUTE, this.authRouteHandler);
306
249
  this.router.get(auth_constants_1.AUTH.ROUTE.LOGIN, this.setCallbackURL, this.loginHandler);
307
250
  this.router.get(auth_constants_1.AUTH.ROUTE.OAUTH_CALLBACK, this.callbackHandler);
308
251
  this.router.get(auth_constants_1.AUTH.ROUTE.LOGOUT, this.logout);
309
- this.logger.log('configure: routes setup completed');
310
- }
311
- else {
312
- this.logger.log('configure: skipping routes setup (useRoutes = false)');
313
252
  }
314
253
  this.addHeaders();
315
- this.logger.log(`configure: emitting ${this.strategyName}.bootstrap.success`);
316
254
  this.emit(`${this.strategyName}.bootstrap.success`);
317
- this.logger.log('=== CONFIGURE END ===');
318
255
  return this.router;
319
256
  };
320
257
  /* istanbul ignore next */
321
258
  this.callbackHandler = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
322
259
  var _a;
323
260
  this.logger.log('in callbackHandler for url ' + req.url);
324
- this.logger.log(`callbackHandler request query params: ${JSON.stringify(req.query)}`);
325
- this.logger.log(`callbackHandler request headers: ${JSON.stringify(req.headers)}`);
326
261
  const reqSession = req.session;
327
- this.logger.log(`callbackHandler session exists: ${!!reqSession}`);
328
- const qstate = typeof req.query.state === 'string' ? req.query.state : undefined;
329
- this.logger.log(`callbackHandler query state: ${qstate}`);
330
- this.logger.log('callbackHandler: not persisting or mutating state (handled by passport strategy)');
262
+ const qstate = typeof req.query.state == 'string' ? req.query.state : undefined;
263
+ const { promise, state } = this.saveStateInSession(reqSession, qstate);
264
+ if (!qstate) {
265
+ req.query.state = state;
266
+ }
267
+ yield promise;
331
268
  if (this.options.sessionKey) {
332
269
  const sessionKey = this.options.sessionKey;
333
270
  this.logger.log(`sessionKey: ${sessionKey}`);
334
271
  this.logger.log(`state from session = ${(_a = reqSession[sessionKey]) === null || _a === void 0 ? void 0 : _a.state}`);
335
- this.logger.log(`full session data for key ${sessionKey}: ${JSON.stringify(reqSession[sessionKey])}`);
336
272
  }
337
273
  else {
338
274
  this.logger.log('sessionKey not set');
@@ -348,35 +284,25 @@ class Strategy extends events.EventEmitter {
348
284
  this.emit(auth_constants_1.AUTH.EVENT.AUTHENTICATE_FAILURE, req, res, next);
349
285
  };
350
286
  const redirectWithFailure = (errorMessages, INVALID_STATE_ERROR, uri) => {
351
- this.logger.log(`callbackHandler redirectWithFailure called with messages: ${JSON.stringify(errorMessages)}`);
352
- this.logger.log(`callbackHandler redirectWithFailure error: ${INVALID_STATE_ERROR}`);
353
- this.logger.log(`callbackHandler redirectWithFailure redirect URI: ${uri}`);
354
287
  errorMessages.push(INVALID_STATE_ERROR);
355
288
  emitAuthenticationFailure(errorMessages);
356
289
  return res.redirect(uri);
357
290
  };
358
291
  this.logger.log(`calling passport authenticate with ${this.strategyName} strategy`);
359
- this.logger.log(`callbackHandler passport authenticate options: ${JSON.stringify({
360
- redirect_uri: reqSession === null || reqSession === void 0 ? void 0 : reqSession.callbackURL,
361
- keepSessionInfo: false,
362
- failureMessage: true,
363
- })}`);
364
292
  passport_1.default.authenticate(this.strategyName, {
365
293
  redirect_uri: reqSession === null || reqSession === void 0 ? void 0 : reqSession.callbackURL,
366
294
  keepSessionInfo: false,
367
295
  failureMessage: true,
368
296
  }, (error, user, info) => {
369
297
  var _a, _b, _c;
370
- this.logger.log('callbackHandler passport authenticate callback invoked');
371
- this.logger.log(`callbackHandler passport callback - error: ${error ? JSON.stringify(error) : 'none'}`);
372
- this.logger.log(`callbackHandler passport callback - user exists: ${!!user}`);
373
- this.logger.log(`callbackHandler passport callback - user data: ${user ? JSON.stringify(user, null, 2) : 'none'}`);
374
- this.logger.log(`callbackHandler passport callback - info: ${info ? JSON.stringify(info) : 'none'}`);
375
298
  if (info) {
376
- this.logger.log(`in passport authenticate callback info: ${JSON.stringify(info)}`);
299
+ this.logger.log(`in passport authenticate callback info: ${info}`);
377
300
  }
378
301
  let errorMessages = [];
379
- // Remove custom state comparison logs (passport strategy handles validation internally)
302
+ if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.sessionKey) {
303
+ const sessState = (_b = reqSession[this.options.sessionKey]) === null || _b === void 0 ? void 0 : _b.state;
304
+ this.logger.log(`in passport authenticate callback, strategy ${this.strategyName}, state ${sessState}`);
305
+ }
380
306
  if (error) {
381
307
  this.logger.log(`in passport authenticate error: ${error}`);
382
308
  switch (error.name) {
@@ -392,46 +318,36 @@ class Strategy extends events.EventEmitter {
392
318
  }
393
319
  }
394
320
  if (!user) {
395
- this.logger.log('callbackHandler: no user returned from passport authenticate');
396
321
  const MISMATCH_NONCE = 'nonce mismatch';
397
322
  const MISMATCH_STATE = 'state mismatch';
398
323
  if ((info === null || info === void 0 ? void 0 : info.message) === INVALID_STATE_ERROR) {
399
- this.logger.log(`callbackHandler: invalid state error detected, info message: ${info.message}`);
400
324
  if (!qstate) { // if state is not in query, then we can ignore
401
325
  this.logger.log('Invalid state error, redirecting to default');
402
326
  return res.redirect(auth_constants_1.AUTH.ROUTE.DEFAULT_REDIRECT);
403
327
  }
404
328
  else {
405
- this.logger.log(`callbackHandler: state mismatch with query state: ${qstate}`);
406
329
  errorMessages.push(LOGIN_BOOKMARK_ERROR);
407
330
  return redirectWithFailure(errorMessages, INVALID_STATE_ERROR, auth_constants_1.AUTH.ROUTE.EXPIRED_LOGIN_LINK);
408
331
  }
409
332
  }
410
333
  else if ((info === null || info === void 0 ? void 0 : info.message.includes(MISMATCH_NONCE)) || (info === null || info === void 0 ? void 0 : info.message.includes(MISMATCH_STATE))) {
411
- this.logger.log(`callbackHandler: nonce/state mismatch detected, info message: ${info.message}`);
412
334
  errorMessages.push(LOGIN_BOOKMARK_ERROR);
413
335
  return redirectWithFailure(errorMessages, info.message, auth_constants_1.AUTH.ROUTE.EXPIRED_LOGIN_LINK);
414
336
  }
415
337
  else if (error === null || error === void 0 ? void 0 : error.message.includes('did not find expected authorization request details in session')) {
416
- this.logger.log(`callbackHandler: session details missing, error message: ${error.message}`);
417
338
  errorMessages = [LOGIN_BOOKMARK_ERROR];
418
339
  return redirectWithFailure(errorMessages, error.message, auth_constants_1.AUTH.ROUTE.EXPIRED_LOGIN_LINK);
419
340
  }
420
341
  else {
421
342
  const message = 'No user details returned by the authentication service, redirecting to login';
422
343
  this.logger.log(message);
423
- this.logger.log(`callbackHandler: unknown error case - info: ${JSON.stringify(info)}, error: ${JSON.stringify(error)}`);
424
344
  return redirectWithFailure(errorMessages, message, auth_constants_1.AUTH.ROUTE.LOGIN);
425
345
  }
426
346
  }
427
347
  else {
428
- this.logger.log('User id from passport.authenticate ' + ((_a = user === null || user === void 0 ? void 0 : user.userinfo) === null || _a === void 0 ? void 0 : _a.uid));
429
- this.logger.log(`callbackHandler: successful user authentication, user email: ${(_b = user === null || user === void 0 ? void 0 : user.userinfo) === null || _b === void 0 ? void 0 : _b.email}`);
430
- this.logger.log(`callbackHandler: user roles: ${JSON.stringify((_c = user === null || user === void 0 ? void 0 : user.userinfo) === null || _c === void 0 ? void 0 : _c.roles)}`);
348
+ this.logger.log('User id from passport.authenticate ' + ((_c = user === null || user === void 0 ? void 0 : user.userInfo) === null || _c === void 0 ? void 0 : _c.id));
431
349
  }
432
- this.logger.log(`callbackHandler: about to emit authentication failure with ${errorMessages.length} messages`);
433
350
  emitAuthenticationFailure(errorMessages);
434
- this.logger.log('callbackHandler: calling verifyLogin');
435
351
  this.verifyLogin(req, user, next, res);
436
352
  })(req, res, next);
437
353
  });
@@ -442,98 +358,11 @@ class Strategy extends events.EventEmitter {
442
358
  };
443
359
  /* istanbul ignore next */
444
360
  this.authenticate = (req, _res, next) => {
445
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
446
- const start = Date.now();
447
- this.logger.log('authenticate: start');
448
- // Ensure trust proxy is enabled as early as possible so req.secure reflects X-Forwarded-Proto
449
- if (!req.app.get('trust proxy')) {
450
- req.app.set('trust proxy', true);
451
- this.logger.log('authenticate: trust proxy enabled (early)');
452
- }
453
- this.logger.log(`authenticate: raw cookies header=${req.headers.cookie || 'none'}`);
454
- this.debugSessionStore(req, 'authenticate:start');
455
- this.logger.log(`authenticate: query=${JSON.stringify(req.query)}`);
456
- this.logger.log(`authenticate: protocol=${req.protocol} secureFlag=${req.secure} trustProxy=${req.app.get('trust proxy')}`);
457
- // Attempt to parse session cookie id for mismatch diagnostics
458
- let parsedCookieSessionId;
459
- try {
460
- const cookieHeader = req.headers.cookie || '';
461
- const match = cookieHeader.match(/xui-webapp=([^;]+)/);
462
- if (match) {
463
- const rawVal = decodeURIComponent(match[1]);
464
- parsedCookieSessionId = rawVal.startsWith('s:') ? rawVal.split('.')[0].substring(2) : rawVal;
465
- if (parsedCookieSessionId && parsedCookieSessionId !== req.sessionID) {
466
- this.logger.log(`authenticate: sessionID mismatch parsedCookieId=${parsedCookieSessionId} req.sessionID=${req.sessionID}`);
467
- if (!req.secure && ((_b = (_a = req.session) === null || _a === void 0 ? void 0 : _a.cookie) === null || _b === void 0 ? void 0 : _b.secure)) {
468
- this.logger.log('authenticate: POSSIBLE secure cookie ignored due to missing trust proxy (req.secure=false)');
469
- }
470
- }
471
- else {
472
- this.logger.log(`authenticate: sessionID matches cookie parsedId=${parsedCookieSessionId}`);
473
- }
474
- }
475
- else {
476
- this.logger.log('authenticate: session cookie pattern not found in header');
477
- }
478
- }
479
- catch (e) {
480
- this.logger.log(`authenticate: exception parsing cookie for diagnostics ${e.message}`);
481
- }
482
- this.logger.log('authenticate: checking authentication status');
483
- this.logger.log(`authenticate: req.isUnauthenticated(): ${req.isUnauthenticated()}`);
484
- this.logger.log(`authenticate: session exists: ${!!req.session}`);
485
- this.logger.log(`authenticate: session ID: ${req.sessionID}`);
486
- this.logger.log(`authenticate: passport user exists: ${!!((_d = (_c = req === null || req === void 0 ? void 0 : req.session) === null || _c === void 0 ? void 0 : _c.passport) === null || _d === void 0 ? void 0 : _d.user)}`);
487
- this.logger.log(`authenticate: passport user userinfo exists: ${!!((_g = (_f = (_e = req === null || req === void 0 ? void 0 : req.session) === null || _e === void 0 ? void 0 : _e.passport) === null || _f === void 0 ? void 0 : _f.user) === null || _g === void 0 ? void 0 : _g.userinfo)}`);
488
- const passportUser = (_j = (_h = req === null || req === void 0 ? void 0 : req.session) === null || _h === void 0 ? void 0 : _h.passport) === null || _j === void 0 ? void 0 : _j.user;
489
- const userinfo = passportUser === null || passportUser === void 0 ? void 0 : passportUser.userinfo;
490
- if (userinfo) {
491
- this.logger.log(`authenticate: user email=${userinfo.email}`);
492
- this.logger.log(`authenticate: user roles=${JSON.stringify(userinfo.roles)}`);
493
- }
494
- const accessToken = (_k = passportUser === null || passportUser === void 0 ? void 0 : passportUser.tokenset) === null || _k === void 0 ? void 0 : _k.accessToken;
495
- if (accessToken) {
496
- this.logger.log(`authenticate: accessToken present, expired=${this.isTokenExpired(accessToken)}`);
497
- }
498
- else {
499
- this.logger.log('authenticate: no accessToken found');
361
+ var _a, _b, _c;
362
+ if (req.isUnauthenticated() || !((_c = (_b = (_a = req === null || req === void 0 ? void 0 : req.session) === null || _a === void 0 ? void 0 : _a.passport) === null || _b === void 0 ? void 0 : _b.user) === null || _c === void 0 ? void 0 : _c.userinfo)) {
363
+ this.logger.log('unauthenticated');
364
+ return _res.status(401).send({ message: 'Unauthorized' });
500
365
  }
501
- this.logger.log(`authenticate: passport user data: ${JSON.stringify(passportUser, null, 2)}`);
502
- if (req.isUnauthenticated() || !userinfo) {
503
- this.logger.log('authenticate: user is not authenticated or missing userinfo');
504
- this.logger.log(`authenticate: isUnauthenticated: ${req.isUnauthenticated()}`);
505
- this.logger.log(`authenticate: missing userinfo: ${!userinfo}`);
506
- // Attempt lightweight recovery: if cookie session differs and store has passport, hydrate current session
507
- try {
508
- const store = req.sessionStore;
509
- if (parsedCookieSessionId && store && typeof store.get === 'function') {
510
- store.get(parsedCookieSessionId, (err, sess) => {
511
- var _a, _b;
512
- if (err) {
513
- this.logger.log(`authenticate: recovery store.get error: ${err}`);
514
- }
515
- else if ((_b = (_a = sess === null || sess === void 0 ? void 0 : sess.passport) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.userinfo) {
516
- this.logger.log('authenticate: recovery found passport user in cookie session; hydrating current req.session');
517
- req.session.passport = sess.passport;
518
- req.session.save((saveErr) => {
519
- this.logger.log(`authenticate: recovery save callback err=${saveErr || 'none'}`);
520
- });
521
- }
522
- else {
523
- this.logger.log('authenticate: recovery store.get returned no usable passport data');
524
- }
525
- });
526
- }
527
- }
528
- catch (e) {
529
- this.logger.log(`authenticate: recovery exception ${e.message}`);
530
- }
531
- this.logger.log('authenticate: redirecting to login route instead of 401 to initiate auth flow');
532
- this.logger.log(`authenticate: end (redirect->LOGIN) durationMs=${Date.now() - start}`);
533
- return _res.redirect(auth_constants_1.AUTH.ROUTE.LOGIN);
534
- }
535
- this.logger.log('authenticate: user is authenticated, proceeding');
536
- this.logger.log(`authenticate: end (success) durationMs=${Date.now() - start}`);
537
366
  next();
538
367
  };
539
368
  /* istanbul ignore next */
@@ -592,124 +421,26 @@ class Strategy extends events.EventEmitter {
592
421
  });
593
422
  /* istanbul ignore next */
594
423
  this.verifyLogin = (req, user, next, res) => {
595
- this.logger.log('=-=-=-=-=-=-=-=-=-=-=-=-=');
596
- this.logger.log('verifyLogin: starting login verification process');
597
- this.logger.log(`verifyLogin: user object exists: ${!!user}`);
598
- this.logger.log(`verifyLogin: user data: ${JSON.stringify(user, null, 2)}`);
599
- this.logger.log(`verifyLogin: session ID: ${req.sessionID}`);
600
- this.logger.log(`verifyLogin: session before logIn: ${JSON.stringify(req.session, null, 2)}`);
601
- this.logger.log(`verifyLogin: protocol=${req.protocol} secureFlag=${req.secure} trustProxy=${req.app.get('trust proxy')}`);
602
- this.logger.log(`verifyLogin: raw cookies header=${req.headers.cookie || 'none'}`);
603
- // Normalise userinfo casing (some strategies may return user.userInfo)
604
- if (user && !user.userinfo && user.userInfo) {
605
- this.logger.log('verifyLogin: normalising user.userInfo -> user.userinfo');
606
- user.userinfo = user.userInfo;
607
- }
608
424
  req.logIn(user, (err) => {
609
- var _a, _b, _c, _d;
610
- this.logger.log('verifyLogin: req.logIn callback invoked');
611
- this.logger.log(`verifyLogin: login error: ${err ? JSON.stringify(err) : 'none'}`);
612
- this.logger.log(`verifyLogin: session after logIn (pre-save): ${JSON.stringify(req.session, null, 2)}`);
613
- const roles = ((_a = user === null || user === void 0 ? void 0 : user.userinfo) === null || _a === void 0 ? void 0 : _a.roles) || [];
614
- this.logger.log(`verifyLogin: user roles: ${JSON.stringify(roles)}`);
615
- this.logger.log(`verifyLogin: user email: ${((_b = user === null || user === void 0 ? void 0 : user.userinfo) === null || _b === void 0 ? void 0 : _b.email) || (user === null || user === void 0 ? void 0 : user.email)}`);
616
- this.logger.log(`verifyLogin: user ID: ${((_c = user === null || user === void 0 ? void 0 : user.userinfo) === null || _c === void 0 ? void 0 : _c.uid) || ((_d = user === null || user === void 0 ? void 0 : user.userinfo) === null || _d === void 0 ? void 0 : _d.id) || (user === null || user === void 0 ? void 0 : user.id)}`);
617
- this.logger.log(`verifyLogin: allowRolesRegex: ${this.options.allowRolesRegex}`);
425
+ const roles = user.userinfo.roles;
618
426
  if (err) {
619
427
  this.logger.error('verifyLogin error', err);
620
- this.logger.error(`verifyLogin: detailed error: ${JSON.stringify(err)}`);
621
428
  return next(err);
622
429
  }
623
- const proceedAfterSave = () => {
624
- var _a;
625
- // Clear loginInProgress flag now that authentication succeeded
626
- if (req.session) {
627
- req.session.loginInProgress = false;
628
- try {
629
- req.session.save(() => {
630
- this.logger.log('verifyLogin: cleared loginInProgress flag and saved session');
631
- });
632
- }
633
- catch (e) {
634
- this.logger.log(`verifyLogin: exception clearing loginInProgress ${e.message}`);
635
- }
636
- }
637
- const listenerCount = this.listenerCount(auth_constants_1.AUTH.EVENT.AUTHENTICATE_SUCCESS);
638
- this.logger.log(`verifyLogin: listener count for ${auth_constants_1.AUTH.EVENT.AUTHENTICATE_SUCCESS}: ${listenerCount}`);
639
- if (!listenerCount) {
640
- this.logger.log(`redirecting, no listener count: ${auth_constants_1.AUTH.EVENT.AUTHENTICATE_SUCCESS}, user: ${((_a = user === null || user === void 0 ? void 0 : user.userinfo) === null || _a === void 0 ? void 0 : _a.email) || (user === null || user === void 0 ? void 0 : user.email)}`);
641
- this.logger.log(`verifyLogin: redirecting to default route: ${auth_constants_1.AUTH.ROUTE.DEFAULT_REDIRECT}`);
642
- return res.redirect(auth_constants_1.AUTH.ROUTE.DEFAULT_REDIRECT);
643
- }
644
- this.logger.log('verifyLogin: emitting authenticate success event');
645
- req.isRefresh = false;
646
- this.logger.log('verifyLogin: setting req.isRefresh to false');
647
- this.emit(auth_constants_1.AUTH.EVENT.AUTHENTICATE_SUCCESS, req, res, next);
648
- this.logger.log('verifyLogin: authenticate success event emitted');
649
- };
650
430
  if (this.options.allowRolesRegex && !(0, common_1.arrayPatternMatch)(roles, this.options.allowRolesRegex)) {
651
- this.logger.log('verifyLogin: role validation failed');
652
- this.logger.info(JSON.stringify((user === null || user === void 0 ? void 0 : user.userinfo) || (user === null || user === void 0 ? void 0 : user.userInfo) || {}));
431
+ this.logger.info(JSON.stringify(user.userInfo));
653
432
  this.logger.error(`User has no application access, as they do not have a role that matches ${this.options.allowRolesRegex}.`);
654
- this.logger.log('verifyLogin: calling logout due to role mismatch');
655
433
  return this.logout(req, res, next);
656
434
  }
657
- else {
658
- this.logger.log('verifyLogin: role validation passed or not required');
659
- }
660
- // Explicitly save session to avoid race on first follow-up request
661
- if (req.session) {
662
- this.logger.log('verifyLogin: invoking explicit req.session.save');
663
- req.session.save((saveErr) => {
664
- this.logger.log(`verifyLogin: session.save callback invoked, err: ${saveErr || 'none'}`);
665
- this.logger.log(`verifyLogin: session after explicit save: ${JSON.stringify(req.session, null, 2)}`);
666
- this.debugSessionStore(req, 'verifyLogin:post-session-save');
667
- try {
668
- const cookieHeader = req.headers.cookie || '';
669
- const match = cookieHeader.match(/xui-webapp=([^;]+)/);
670
- if (match) {
671
- const rawVal = decodeURIComponent(match[1]);
672
- const parsedId = rawVal.startsWith('s:') ? rawVal.split('.')[0].substring(2) : rawVal;
673
- this.logger.log(`verifyLogin: parsed cookie session id=${parsedId} (may not yet reflect newly saved passport data until response end)`);
674
- }
675
- }
676
- catch (e) {
677
- this.logger.log(`verifyLogin: exception parsing cookie ${e.message}`);
678
- }
679
- proceedAfterSave();
680
- });
435
+ if (!this.listenerCount(auth_constants_1.AUTH.EVENT.AUTHENTICATE_SUCCESS)) {
436
+ this.logger.log(`redirecting, no listener count: ${auth_constants_1.AUTH.EVENT.AUTHENTICATE_SUCCESS}, user: ${user.email}`);
437
+ res.redirect(auth_constants_1.AUTH.ROUTE.DEFAULT_REDIRECT);
681
438
  }
682
439
  else {
683
- this.logger.log('verifyLogin: no session object found, proceeding without explicit save');
684
- this.debugSessionStore(req, 'verifyLogin:no-session-object');
685
- proceedAfterSave();
440
+ req.isRefresh = false;
441
+ this.emit(auth_constants_1.AUTH.EVENT.AUTHENTICATE_SUCCESS, req, res, next);
686
442
  }
687
443
  });
688
- this.logger.log('=-=-=-=-=-=-=-=-=-=-=-=-=');
689
- };
690
- /* istanbul ignore next */
691
- this.debugSessionStore = (req, label) => {
692
- try {
693
- // sessionStore API varies; typical express-session has get
694
- const store = req.sessionStore;
695
- if (store && typeof store.get === 'function' && req.sessionID) {
696
- store.get(req.sessionID, (err, sess) => {
697
- if (err) {
698
- this.logger.log(`${label}: sessionStore.get error: ${err}`);
699
- }
700
- else {
701
- this.logger.log(`${label}: sessionStore.get success, keys=${Object.keys(sess || {}).join(',')}`);
702
- this.logger.log(`${label}: sessionStore.get passport=${JSON.stringify(sess === null || sess === void 0 ? void 0 : sess.passport)}`);
703
- }
704
- });
705
- }
706
- else {
707
- this.logger.log(`${label}: sessionStore.get unavailable (store=${!!store}, hasGet=${!!(store === null || store === void 0 ? void 0 : store.get)}, sessionID=${req.sessionID})`);
708
- }
709
- }
710
- catch (e) {
711
- this.logger.log(`${label}: debugSessionStore exception ${e.message}`);
712
- }
713
444
  };
714
445
  /* istanbul ignore next */
715
446
  this.initializePassport = () => {
@@ -813,11 +544,9 @@ class Strategy extends events.EventEmitter {
813
544
  /* istanbul ignore next */
814
545
  this.emitIfListenersExist = (eventName, eventObject, done) => {
815
546
  if (!this.listenerCount(eventName)) {
816
- this.logger.log(`no listeners for event ${eventName}, proceeding with default done callback`);
817
547
  done(null, eventObject);
818
548
  }
819
549
  else {
820
- this.logger.log(`emitting event ${eventName} to listeners`);
821
550
  this.emit(eventName, eventObject, done);
822
551
  }
823
552
  };
@@ -882,10 +611,28 @@ class Strategy extends events.EventEmitter {
882
611
  }
883
612
  return true;
884
613
  }
885
- // Deprecated custom state persistence; relying on openid-client passport strategy's internal handling.
886
- saveStateInSession(_reqSession, _state) {
887
- const empty = new Promise((resolve) => resolve(true));
888
- return { promise: empty, state: '' };
614
+ saveStateInSession(reqSession, state) {
615
+ if (!state) {
616
+ state = openid_client_1.generators.state();
617
+ this.logger.log(`state not found, generating new state ${state}`);
618
+ }
619
+ const p = new Promise((resolve) => {
620
+ var _a, _b;
621
+ if (reqSession && ((_a = this.options) === null || _a === void 0 ? void 0 : _a.sessionKey)) {
622
+ // add the state to the current session object, this will then contain both nonce and state
623
+ reqSession[(_b = this.options) === null || _b === void 0 ? void 0 : _b.sessionKey] = Object.assign(Object.assign({}, reqSession[this.options.sessionKey]), { state });
624
+ this.logger.log(`saving state ${state} in session`);
625
+ reqSession.save(() => {
626
+ this.logger.log(`state ${state} saved in session`);
627
+ resolve(true);
628
+ });
629
+ }
630
+ else {
631
+ this.logger.log('sessionKey not available state not saved');
632
+ resolve(false);
633
+ }
634
+ });
635
+ return { promise: p, state: state };
889
636
  }
890
637
  }
891
638
  exports.Strategy = Strategy;
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.class.js","sourceRoot":"","sources":["../../../src/auth/models/strategy.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy.class.js","sourceRoot":"","sources":["../../../src/auth/models/strategy.class.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStore.class.d.ts","sourceRoot":"","sources":["../../../src/session/models/sessionStore.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,OAAO,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAa,SAAS,EAAE,MAAM,cAAc,CAAA;AAQnD,8BAAsB,YAAa,SAAQ,MAAM,CAAC,YAAY;IAC1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IACpC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACjC,SAAgB,SAAS,EAAE,MAAM,CAAA;IAEjC,SAAS,aAAa,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsC;aAOvF,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK;IAE1D,SAAS,GAAI,SAAS,eAAe,KAAG,cAAc,CAa5D;IAEM,aAAa,GAAI,SAAS,eAAe,KAAG,OAAO,CAAC,KAAK,CAK/D;IAEM,iBAAiB,GAAI,SAAS,eAAe,EAAE,OAAO,OAAO,CAAC,KAAK,KAAG,GAAG,CAS/E;IAED;;;OAGG;IACI,SAAS,QAAO,MAAM,EAAE,CAE9B;CACJ"}
1
+ {"version":3,"file":"sessionStore.class.d.ts","sourceRoot":"","sources":["../../../src/session/models/sessionStore.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,OAAO,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAa,SAAS,EAAE,MAAM,cAAc,CAAA;AAQnD,8BAAsB,YAAa,SAAQ,MAAM,CAAC,YAAY;IAC1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IACpC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACjC,SAAgB,SAAS,EAAE,MAAM,CAAA;IAEjC,SAAS,aAAa,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsC;aAOvF,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK;IAE1D,SAAS,GAAI,SAAS,eAAe,KAAG,cAAc,CAK5D;IAEM,aAAa,GAAI,SAAS,eAAe,KAAG,OAAO,CAAC,KAAK,CAK/D;IAEM,iBAAiB,GAAI,SAAS,eAAe,EAAE,OAAO,OAAO,CAAC,KAAK,KAAG,GAAG,CAS/E;IAED;;;OAGG;IACI,SAAS,QAAO,MAAM,EAAE,CAE9B;CACJ"}
@@ -53,14 +53,6 @@ class SessionStore extends events.EventEmitter {
53
53
  this.configure = (options) => {
54
54
  const store = this.getClassStore(options);
55
55
  const sessionOptions = this.mapSessionOptions(options, store);
56
- // Ensure trust proxy is enabled before session middleware so secure cookies are respected
57
- this.router.use((req, _res, next) => {
58
- if (!req.app.get('trust proxy')) {
59
- req.app.set('trust proxy', true);
60
- this.logger.log('sessionStore: trust proxy enabled (pre-session middleware)');
61
- }
62
- next();
63
- });
64
56
  this.router.use((0, express_session_1.default)(sessionOptions));
65
57
  return this.router;
66
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStore.class.js","sourceRoot":"","sources":["../../../src/session/models/sessionStore.class.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAgC;AAEhC,sEAAqC;AACrC,4DAA8C;AAC9C,yCAAmD;AAEnD,0DAA0D;AAC1D,0DAA0D;AAC1D,+DAA+D;AAC/D,sBAAsB;AACtB,8DAA8D;AAC9D,gBAAgB;AAChB,MAAsB,YAAa,SAAQ,MAAM,CAAC,YAAY;IAK1D,YAAsB,SAAiB,EAAE,MAAc,EAAE,SAAoB,IAAA,kBAAS,EAAC,eAAe,CAAC;QACnG,KAAK,EAAE,CAAA;QAQJ,cAAS,GAAG,CAAC,OAAwB,EAAkB,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACzC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC7D,0FAA0F;YAC1F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;oBAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;gBACjF,CAAC;gBACD,IAAI,EAAE,CAAA;YACV,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAA,yBAAO,EAAC,cAAc,CAAC,CAAC,CAAA;YACxC,OAAO,IAAI,CAAC,MAAM,CAAA;QACtB,CAAC,CAAA;QAEM,kBAAa,GAAG,CAAC,OAAwB,EAAiB,EAAE;YAC/D,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACjC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAChD,CAAC,CAAA;QAEM,sBAAiB,GAAG,CAAC,OAAwB,EAAE,KAAoB,EAAO,EAAE;YAC/E,OAAO;gBACH,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK;aACR,CAAA;QACL,CAAC,CAAA;QAED;;;WAGG;QACI,cAAS,GAAG,GAAa,EAAE;YAC9B,OAAO,MAAM,CAAC,MAAM,CAAS,2BAAO,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC,CAAA;QA9CG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;CA4CJ;AAtDD,oCAsDC"}
1
+ {"version":3,"file":"sessionStore.class.js","sourceRoot":"","sources":["../../../src/session/models/sessionStore.class.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAgC;AAEhC,sEAAqC;AACrC,4DAA8C;AAC9C,yCAAmD;AAEnD,0DAA0D;AAC1D,0DAA0D;AAC1D,+DAA+D;AAC/D,sBAAsB;AACtB,8DAA8D;AAC9D,gBAAgB;AAChB,MAAsB,YAAa,SAAQ,MAAM,CAAC,YAAY;IAK1D,YAAsB,SAAiB,EAAE,MAAc,EAAE,SAAoB,IAAA,kBAAS,EAAC,eAAe,CAAC;QACnG,KAAK,EAAE,CAAA;QAQJ,cAAS,GAAG,CAAC,OAAwB,EAAkB,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACzC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAA,yBAAO,EAAC,cAAc,CAAC,CAAC,CAAA;YACxC,OAAO,IAAI,CAAC,MAAM,CAAA;QACtB,CAAC,CAAA;QAEM,kBAAa,GAAG,CAAC,OAAwB,EAAiB,EAAE;YAC/D,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACjC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAChD,CAAC,CAAA;QAEM,sBAAiB,GAAG,CAAC,OAAwB,EAAE,KAAoB,EAAO,EAAE;YAC/E,OAAO;gBACH,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK;aACR,CAAA;QACL,CAAC,CAAA;QAED;;;WAGG;QACI,cAAS,GAAG,GAAa,EAAE;YAC9B,OAAO,MAAM,CAAC,MAAM,CAAS,2BAAO,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC,CAAA;QAtCG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;CAoCJ;AA9CD,oCA8CC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hmcts/rpx-xui-node-lib",
3
- "version": "2.30.10-additional-logging-rc14",
3
+ "version": "2.30.10-exui-3994",
4
4
  "description": "Common nodejs library components for XUI",
5
5
  "main": "dist/index",
6
6
  "types": "dist/index.d.ts",