@things-factory/integration-accounting 4.3.734 → 4.3.740

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.
@@ -12,9 +12,33 @@ class Xilnex {
12
12
  constructor(config) {
13
13
  this.config = Object.assign({}, config);
14
14
  }
15
- isValidSignature(data, secret, signature) {
16
- let hmac = crypto_1.default.createHmac('sha256', secret).update(JSON.stringify(data)).digest('hex').toUpperCase();
17
- return hmac === signature;
15
+ isValidSignature(payload, secret, signature) {
16
+ if (!secret || !signature) {
17
+ return false;
18
+ }
19
+ const provided = String(signature).trim().toUpperCase();
20
+ let message;
21
+ // XilnexPortal signs the exact raw bytes they send
22
+ // Classic signs JSON.stringify of parsed body
23
+ if (Buffer.isBuffer(payload)) {
24
+ // Raw bytes (for XilnexPortal)
25
+ message = payload;
26
+ }
27
+ else if (typeof payload === 'object' && payload !== null) {
28
+ // Parsed object (for Classic or fallback)
29
+ message = JSON.stringify(payload);
30
+ }
31
+ else if (typeof payload === 'string') {
32
+ message = payload;
33
+ }
34
+ else {
35
+ message = String(payload);
36
+ }
37
+ const computed = crypto_1.default.createHmac('sha256', secret).update(message).digest('hex').toUpperCase();
38
+ if (computed.length !== provided.length) {
39
+ return false;
40
+ }
41
+ return crypto_1.default.timingSafeEqual(Buffer.from(computed, 'utf8'), Buffer.from(provided, 'utf8'));
18
42
  }
19
43
  async get(path, data) {
20
44
  const { accessToken, appId } = this.config;
@@ -1 +1 @@
1
- {"version":3,"file":"xilnex.js","sourceRoot":"","sources":["../../../server/controllers/xilnex/xilnex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xilnex.js","sourceRoot":"","sources":["../../../server/controllers/xilnex/xilnex.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-accounting",
3
- "version": "4.3.734",
3
+ "version": "4.3.740",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,19 +24,19 @@
24
24
  "test": "DEBUG=things-factory:* NODE_ENV=development npx mocha -r ts-node/register ./test/**/*spec.ts"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/apptool-ui": "^4.3.734",
28
- "@things-factory/auth-ui": "^4.3.734",
29
- "@things-factory/biz-base": "^4.3.734",
30
- "@things-factory/code-ui": "^4.3.734",
31
- "@things-factory/context-ui": "^4.3.734",
32
- "@things-factory/grist-ui": "^4.3.734",
33
- "@things-factory/i18n-base": "^4.3.734",
34
- "@things-factory/integration-ui": "^4.3.734",
35
- "@things-factory/more-ui": "^4.3.734",
36
- "@things-factory/product-base": "^4.3.734",
37
- "@things-factory/resource-ui": "^4.3.734",
38
- "@things-factory/setting-ui": "^4.3.734",
39
- "@things-factory/system-ui": "^4.3.734",
27
+ "@things-factory/apptool-ui": "^4.3.740",
28
+ "@things-factory/auth-ui": "^4.3.740",
29
+ "@things-factory/biz-base": "^4.3.740",
30
+ "@things-factory/code-ui": "^4.3.740",
31
+ "@things-factory/context-ui": "^4.3.740",
32
+ "@things-factory/grist-ui": "^4.3.740",
33
+ "@things-factory/i18n-base": "^4.3.740",
34
+ "@things-factory/integration-ui": "^4.3.740",
35
+ "@things-factory/more-ui": "^4.3.740",
36
+ "@things-factory/product-base": "^4.3.740",
37
+ "@things-factory/resource-ui": "^4.3.740",
38
+ "@things-factory/setting-ui": "^4.3.740",
39
+ "@things-factory/system-ui": "^4.3.740",
40
40
  "debug": "^4.1.1",
41
41
  "node-fetch": "^2.6.0"
42
42
  },
@@ -50,5 +50,5 @@
50
50
  "nock": "^13.0.2",
51
51
  "should": "^13.2.3"
52
52
  },
53
- "gitHead": "c85c5a1e8ed4f0c4e7c438b6067539216d96caa9"
53
+ "gitHead": "a44a2bba35384ffe5934a419b677f9e8f49d1ffe"
54
54
  }
@@ -22,10 +22,35 @@ export class Xilnex {
22
22
  }
23
23
  }
24
24
 
25
- isValidSignature(data, secret, signature) {
26
- let hmac = crypto.createHmac('sha256', secret).update(JSON.stringify(data)).digest('hex').toUpperCase()
25
+ isValidSignature(payload: any, secret: string, signature: string) {
26
+ if (!secret || !signature) {
27
+ return false
28
+ }
29
+
30
+ const provided = String(signature).trim().toUpperCase()
31
+ let message: Buffer | string
32
+
33
+ // XilnexPortal signs the exact raw bytes they send
34
+ // Classic signs JSON.stringify of parsed body
35
+ if (Buffer.isBuffer(payload)) {
36
+ // Raw bytes (for XilnexPortal)
37
+ message = payload
38
+ } else if (typeof payload === 'object' && payload !== null) {
39
+ // Parsed object (for Classic or fallback)
40
+ message = JSON.stringify(payload)
41
+ } else if (typeof payload === 'string') {
42
+ message = payload
43
+ } else {
44
+ message = String(payload)
45
+ }
46
+
47
+ const computed = crypto.createHmac('sha256', secret).update(message).digest('hex').toUpperCase()
48
+
49
+ if (computed.length !== provided.length) {
50
+ return false
51
+ }
27
52
 
28
- return hmac === signature
53
+ return crypto.timingSafeEqual(Buffer.from(computed, 'utf8'), Buffer.from(provided, 'utf8'))
29
54
  }
30
55
 
31
56
  async get(path: string, data: any) {