Skip to content
This repository was archived by the owner on Oct 29, 2025. It is now read-only.

Commit e9f0369

Browse files
authored
Merge pull request #167 from PerimeterX/bugfix/tokenDecryptionFailed
Drop Token version number from original token field.
2 parents 4bf82e6 + 7296443 commit e9f0369

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

lib/pxcontext.js

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class PxContext {
3131
this.cookieOrigin = 'header';
3232
config.logger.debug('Mobile SDK token detected');
3333
this.originalToken = this.headers[mobileSdkOriginalTokenHeader];
34-
const tokenObject = this.getTokenObject(mobileHeader);
34+
const tokenObject = pxUtil.getTokenObject(mobileHeader);
3535
this.cookies[tokenObject.key] = tokenObject.value;
3636
} else {
3737
let cookies = req.cookies;
@@ -78,19 +78,6 @@ class PxContext {
7878
return false;
7979
}
8080

81-
getTokenObject(cookie, delimiter = ':') {
82-
if (cookie.indexOf(delimiter) > -1) {
83-
const [version, ...extractedCookie] = cookie.split(delimiter);
84-
if (version === '3') {
85-
return { key: '_px3', value: extractedCookie.join(delimiter) };
86-
}
87-
if (version === '1') {
88-
return { key: '_px', value: extractedCookie.join(delimiter) };
89-
}
90-
}
91-
return { key: '_px3', value: cookie };
92-
}
93-
9481
isMobile() {
9582
return this.cookieOrigin === 'header';
9683
}

lib/pxoriginaltoken.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
const TokenV3 = require('./cookie/tokenV3');
22
const TokenV1 = require('./cookie/tokenV1');
3+
const pxUtil = require('./pxutil');
34

45
function evalCookie(ctx, config) {
56
try {
6-
const noVersionOriginalToken = ctx.originalToken;
7+
const noVersionOriginalToken = pxUtil.getTokenObject(ctx.originalToken).value;
78
const cookie = (ctx.cookies['_px3'] ? new TokenV3(ctx, config, noVersionOriginalToken) : new TokenV1(ctx, config, noVersionOriginalToken));
89
config.logger.debug('Original token found, Evaluating');
910

lib/pxutil.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,19 @@ function isReqInMonitorMode(pxConfig, pxCtx) {
249249
);
250250
}
251251

252+
function getTokenObject(cookie, delimiter = ':') {
253+
if (cookie.indexOf(delimiter) > -1) {
254+
const [version, ...extractedCookie] = cookie.split(delimiter);
255+
if (version === '3') {
256+
return { key: '_px3', value: extractedCookie.join(delimiter) };
257+
}
258+
if (version === '1') {
259+
return { key: '_px', value: extractedCookie.join(delimiter) };
260+
}
261+
}
262+
return { key: '_px3', value: cookie };
263+
}
264+
252265
module.exports = {
253266
formatHeaders,
254267
filterSensitiveHeaders,
@@ -266,4 +279,5 @@ module.exports = {
266279
isStringMatchWith,
267280
generateHMAC,
268281
isReqInMonitorMode,
282+
getTokenObject,
269283
};

0 commit comments

Comments
 (0)