Explorar o código

feat: add MJS ZTNA signing helper

lfx hai 5 días
pai
achega
40f7b19fab

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 26972 - 0
mjava-minglei/src/main/resources/static/mjs/mjs.min.js


+ 26 - 0
mjava-minglei/src/test/js/mjs-sign.test.js

@@ -0,0 +1,26 @@
+const fs = require('fs');
+const vm = require('vm');
+const assert = require('assert');
+
+const libraryPath = 'src/main/resources/static/mjs/mjs.min.js';
+const source = fs.readFileSync(libraryPath, 'utf8');
+const signatureModule = source.slice(source.indexOf('// ZTNA signature helper'));
+const sandbox = { mjs: {} };
+
+vm.runInNewContext(signatureModule, sandbox, { filename: libraryPath });
+
+assert.strictEqual(typeof sandbox.mjs.sign, 'function');
+assert.strictEqual(
+  sandbox.mjs.sign('testAccessKeyId', 'testAccessKeySecret', 'gateway.example.com:8443', '', 1714268844854),
+  'NJxwxDOUcz+DDQ9XhzHflgz2gxOVC2RcKBXXySWm+dA='
+);
+assert.throws(
+  () => sandbox.mjs.sign('', 'testAccessKeySecret', 'gateway.example.com:8443', '', 1714268844854),
+  /accessKeyId is required/
+);
+assert.throws(
+  () => sandbox.mjs.sign('testAccessKeyId', '', 'gateway.example.com:8443', '', 1714268844854),
+  /accessKeySecret is required/
+);
+
+console.log('mjs.sign signature test passed');