Skip to content

Commit 30c8beb

Browse files
authored
Merge pull request #22 from bcgov/ssoteam-2606
chore: additional log info
2 parents 4615e46 + b7902a2 commit 30c8beb

3 files changed

Lines changed: 37 additions & 2 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"openid-client": "^6.8.1",
3434
"pg": "^8.16.0",
3535
"sequelize": "^6.37.7",
36+
"ua-parser-js": "^2.0.9",
3637
"umzug": "^3.8.2",
3738
"uuid": "^11.1.0",
3839
"winston": "^3.17.0"

src/routes/interaction.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import express, { NextFunction, Request, Response, urlencoded } from 'express';
22
import Provider from 'oidc-provider';
33
import { authorize, generateOtp, login, abortLogin } from '../controllers/auth-controller';
4-
import { LoginTimeoutError, setNoCache } from '../utils/helpers';
4+
import { LoginTimeoutError, parseForwardedHeader, setNoCache } from '../utils/helpers';
55
import { errors } from 'oidc-provider';
66
import logger from '../modules/winston.config';
7+
import { UAParser } from 'ua-parser-js';
78

89
const body = urlencoded({ extended: false });
910

@@ -15,7 +16,16 @@ export const oidcRouter = async (oidcProvider: Provider) => {
1516
oidcRouter.post('/:uid/abort', await abortLogin(oidcProvider));
1617
oidcRouter.use((err: Error, req: Request, res: Response, next: NextFunction) => {
1718
if (err) {
18-
logger.error('OIDC interaction error:', err);
19+
try {
20+
const ua = UAParser(req.headers['user-agent']);
21+
const forwardedHeaders = parseForwardedHeader(req.headers.forwarded);
22+
logger.error(
23+
'OIDC interaction error:',
24+
Object.assign(err, { ipAddr: forwardedHeaders.for, userAgent: ua, path: req.path }),
25+
);
26+
} catch {
27+
logger.error('OIDC interaction error:', err);
28+
}
1929
let errorMessage = 'An unexpected error occurred';
2030
let errorStatus = 500;
2131
if (err instanceof LoginTimeoutError) {

yarn.lock

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3330,6 +3330,11 @@ destroy@1.2.0, destroy@^1.0.4:
33303330
resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
33313331
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
33323332

3333+
detect-europe-js@^0.1.2:
3334+
version "0.1.2"
3335+
resolved "https://registry.yarnpkg.com/detect-europe-js/-/detect-europe-js-0.1.2.tgz#aa76642e05dae786efc2e01a23d4792cd24c7b88"
3336+
integrity sha512-lgdERlL3u0aUdHocoouzT10d9I89VVhk0qNRmll7mXdGfJT1/wqZ2ZLA4oJAjeACPY5fT1wsbq2AT+GkuInsow==
3337+
33333338
detect-libc@^1.0.3:
33343339
version "1.0.3"
33353340
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
@@ -4348,6 +4353,11 @@ is-regex@^1.2.1:
43484353
has-tostringtag "^1.0.2"
43494354
hasown "^2.0.2"
43504355

4356+
is-standalone-pwa@^0.1.1:
4357+
version "0.1.1"
4358+
resolved "https://registry.yarnpkg.com/is-standalone-pwa/-/is-standalone-pwa-0.1.1.tgz#7a1b0459471a95378aa0764d5dc0a9cec95f2871"
4359+
integrity sha512-9Cbovsa52vNQCjdXOzeQq5CnCbAcRk05aU62K20WO372NrTv0NxibLFCK6lQ4/iZEFdEA3p3t2VNOn8AJ53F5g==
4360+
43514361
is-stream@^2.0.0:
43524362
version "2.0.1"
43534363
resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
@@ -6691,6 +6701,20 @@ typescript@^5.8.2:
66916701
resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz"
66926702
integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
66936703

6704+
ua-is-frozen@^0.1.2:
6705+
version "0.1.2"
6706+
resolved "https://registry.yarnpkg.com/ua-is-frozen/-/ua-is-frozen-0.1.2.tgz#bfbc5f06336e379590e36beca444188c7dc3a7f3"
6707+
integrity sha512-RwKDW2p3iyWn4UbaxpP2+VxwqXh0jpvdxsYpZ5j/MLLiQOfbsV5shpgQiw93+KMYQPcteeMQ289MaAFzs3G9pw==
6708+
6709+
ua-parser-js@^2.0.9:
6710+
version "2.0.9"
6711+
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-2.0.9.tgz#befd25ded7d3490008463f3d5ea6259ec6316d7a"
6712+
integrity sha512-OsqGhxyo/wGdLSXMSJxuMGN6H4gDnKz6Fb3IBm4bxZFMnyy0sdf6MN96Ie8tC6z/btdO+Bsy8guxlvLdwT076w==
6713+
dependencies:
6714+
detect-europe-js "^0.1.2"
6715+
is-standalone-pwa "^0.1.1"
6716+
ua-is-frozen "^0.1.2"
6717+
66946718
ufo@^1.5.4:
66956719
version "1.6.1"
66966720
resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz"

0 commit comments

Comments
 (0)