lemon-core 3.2.10 → 3.2.11

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.
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.sigV4Client = void 0;
7
+ /**
8
+ * `sig-v4.ts`
9
+ *
10
+ * @author Claire <claire@lemoncloud.io>
11
+ * @date 2024-12-02 initial version
12
+ *
13
+ * @copyright (C) 2024 LemonCloud Co Ltd. - All Rights Reserved.
14
+ */
15
+ const sha256_js_1 = __importDefault(require("crypto-js/sha256.js"));
16
+ const hmac_sha256_js_1 = __importDefault(require("crypto-js/hmac-sha256.js"));
17
+ const enc_hex_js_1 = __importDefault(require("crypto-js/enc-hex.js"));
18
+ const SHA256 = sha256_js_1.default;
19
+ const encHex = enc_hex_js_1.default;
20
+ const HmacSHA256 = hmac_sha256_js_1.default;
21
+ const AWS_SHA_256 = 'AWS4-HMAC-SHA256';
22
+ const AWS4_REQUEST = 'aws4_request';
23
+ const AWS4 = 'AWS4';
24
+ const X_AMZ_DATE = 'x-amz-date';
25
+ const X_AMZ_SECURITY_TOKEN = 'x-amz-security-token';
26
+ const HOST = 'host';
27
+ const AUTHORIZATION = 'Authorization';
28
+ const hash = (value) => SHA256(value);
29
+ const hexEncode = (value) => value.toString(encHex);
30
+ const hmac = (secret, value) => HmacSHA256(value, secret);
31
+ const buildCanonicalRequest = (method, path, queryParams, headers, payload) => {
32
+ return (method +
33
+ '\n' +
34
+ buildCanonicalUri(path) +
35
+ '\n' +
36
+ buildCanonicalQueryString(queryParams) +
37
+ '\n' +
38
+ buildCanonicalHeaders(headers) +
39
+ '\n' +
40
+ buildCanonicalSignedHeaders(headers) +
41
+ '\n' +
42
+ hexEncode(hash(payload)));
43
+ };
44
+ const hashCanonicalRequest = (request) => hexEncode(hash(request));
45
+ const buildCanonicalUri = (uri) => UriEncode(uri);
46
+ //! code from: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html
47
+ //! '*' '+' '!' 같은 특수 문자가 들어갈 경우 인증 에러 발생할 수 있음.
48
+ const UriEncode = (input, encodeSlash = false) => {
49
+ const result = [];
50
+ // const toHexUTF8 = (str: any) => {
51
+ // //TOOD - '한글' 인코딩시 utf8 으로 안하는듯.
52
+ // str = str || '';
53
+ // let hex = '';
54
+ // for (let i = 0; i < str.length; i++) {
55
+ // hex += '%' + str.charCodeAt(i).toString(16).toUpperCase();
56
+ // }
57
+ // return hex;
58
+ // };
59
+ for (let i = 0; i < input.length; i++) {
60
+ const ch = input.charAt(i);
61
+ if ((ch >= 'A' && ch <= 'Z') ||
62
+ (ch >= 'a' && ch <= 'z') ||
63
+ (ch >= '0' && ch <= '9') ||
64
+ ch === '_' ||
65
+ ch === '-' ||
66
+ ch === '~' ||
67
+ ch === '.') {
68
+ result.push(ch);
69
+ }
70
+ else if (ch == '*') {
71
+ //TODO - encodeURIComponent()에서 인코딩이 안되서, 강제로 인코딩됨.
72
+ result.push('%2A');
73
+ }
74
+ else if (ch == '!') {
75
+ //TODO - encodeURIComponent()에서 인코딩이 안되서, 강제로 인코딩됨.
76
+ result.push('%21');
77
+ }
78
+ else if (ch == '(') {
79
+ //TODO - encodeURIComponent()에서 인코딩이 안되서, 강제로 인코딩됨.
80
+ result.push('%28');
81
+ }
82
+ else if (ch == ')') {
83
+ //TODO - encodeURIComponent()에서 인코딩이 안되서, 강제로 인코딩됨.
84
+ result.push('%29');
85
+ }
86
+ else if (ch == '/') {
87
+ result.push(encodeSlash ? '%2F' : ch);
88
+ }
89
+ else {
90
+ // result.push(1 ? hexEncode(ch) : toHexUTF8(ch));
91
+ result.push(encodeURIComponent(ch));
92
+ }
93
+ }
94
+ // console.log('! encode=',result.join('').toString(), '<-', input);
95
+ return result.join('').toString();
96
+ };
97
+ const buildCanonicalQueryString = (queryParams) => {
98
+ if (Object.keys(queryParams).length < 1) {
99
+ return '';
100
+ }
101
+ const sortedQueryParams = [];
102
+ for (const property in queryParams) {
103
+ if (Object.prototype.hasOwnProperty.call(queryParams, property)) {
104
+ sortedQueryParams.push(property);
105
+ }
106
+ }
107
+ sortedQueryParams.sort();
108
+ let canonicalQueryString = '';
109
+ for (let i = 0; i < sortedQueryParams.length; i++) {
110
+ canonicalQueryString +=
111
+ sortedQueryParams[i] +
112
+ '=' +
113
+ //FIX - encoding problem: A-Z, a-z, 0-9, hyphen ( - ), underscore ( _ ), period ( . ), and tilde ( ~ ).
114
+ // https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html.
115
+ // encodeURIComponent(queryParams[sortedQueryParams[i]]) +
116
+ urlencode(queryParams[sortedQueryParams[i]]) +
117
+ '&';
118
+ }
119
+ return canonicalQueryString.substring(0, canonicalQueryString.length - 1);
120
+ };
121
+ //code from https://www.codeproject.com/Articles/1016044/JavaScript-URL-encode-decode-and-escape
122
+ const urlencode = (text) => {
123
+ return encodeURIComponent(text)
124
+ .replace(/!/g, '%21')
125
+ .replace(/'/g, '%27')
126
+ .replace(/\(/g, '%28')
127
+ .replace(/\)/g, '%29')
128
+ .replace(/\*/g, '%2A')
129
+ .replace(/%20/g, '%20');
130
+ };
131
+ // function urldecode(text: any) {
132
+ // return decodeURIComponent((text + '').replace(/\+/g, '%20'));
133
+ // }
134
+ const buildCanonicalHeaders = (headers) => {
135
+ let canonicalHeaders = '';
136
+ const sortedKeys = [];
137
+ for (const property in headers) {
138
+ if (Object.prototype.hasOwnProperty.call(headers, property)) {
139
+ sortedKeys.push(property);
140
+ }
141
+ }
142
+ sortedKeys.sort();
143
+ for (let i = 0; i < sortedKeys.length; i++) {
144
+ canonicalHeaders += sortedKeys[i].toLowerCase() + ':' + headers[sortedKeys[i]] + '\n';
145
+ }
146
+ return canonicalHeaders;
147
+ };
148
+ const buildCanonicalSignedHeaders = (headers) => {
149
+ const sortedKeys = [];
150
+ for (const property in headers) {
151
+ if (Object.prototype.hasOwnProperty.call(headers, property)) {
152
+ sortedKeys.push(property.toLowerCase());
153
+ }
154
+ }
155
+ sortedKeys.sort();
156
+ return sortedKeys.join(';');
157
+ };
158
+ const buildStringToSign = (datetime, credentialScope, hashedCanonicalRequest) => {
159
+ return AWS_SHA_256 + '\n' + datetime + '\n' + credentialScope + '\n' + hashedCanonicalRequest;
160
+ };
161
+ const buildCredentialScope = (datetime, region, service) => {
162
+ return `${datetime.substr(0, 8)}/${region}/${service}/${AWS4_REQUEST}`;
163
+ };
164
+ const calculateSigningKey = (secretKey, datetime, region, service) => {
165
+ return hmac(hmac(hmac(hmac(`${AWS4}${secretKey}`, datetime.substr(0, 8)), region), service), AWS4_REQUEST);
166
+ };
167
+ const calculateSignature = (key, stringToSign) => {
168
+ return hexEncode(hmac(key, stringToSign));
169
+ };
170
+ const buildAuthorizationHeader = (accessKey, credentialScope, headers, signature) => {
171
+ return `${AWS_SHA_256} Credential=${accessKey}/${credentialScope}, SignedHeaders=${buildCanonicalSignedHeaders(headers)}, Signature=${signature}`;
172
+ };
173
+ const sigV4Client = (config) => {
174
+ const awsSigV4Client = {};
175
+ if (!config.accessKey || !config.secretKey) {
176
+ return awsSigV4Client;
177
+ }
178
+ awsSigV4Client.host = config.host;
179
+ awsSigV4Client.accessKey = config.accessKey;
180
+ awsSigV4Client.secretKey = config.secretKey;
181
+ awsSigV4Client.sessionToken = config.sessionToken;
182
+ awsSigV4Client.serviceName = config.serviceName || 'execute-api';
183
+ awsSigV4Client.region = config.region || 'ap-northeast-2';
184
+ awsSigV4Client.defaultAcceptType = config.defaultAcceptType || 'application/json';
185
+ awsSigV4Client.defaultContentType = config.defaultContentType || 'application/json';
186
+ const invokeUrl = config.endpoint;
187
+ const endpoint = /(^https?:\/\/[^/]+)/g.exec(invokeUrl)[1];
188
+ const pathComponent = invokeUrl.substring(endpoint.length);
189
+ awsSigV4Client.endpoint = endpoint;
190
+ awsSigV4Client.pathComponent = pathComponent;
191
+ awsSigV4Client.signRequest = (request) => {
192
+ const verb = request.method.toUpperCase();
193
+ const path = awsSigV4Client.pathComponent + request.path;
194
+ const queryParams = request.queryParams || {}; //{ ...request.queryParams };
195
+ const headers = request.headers || {}; //{ ...request.headers };
196
+ if (!headers['Content-Type']) {
197
+ headers['Content-Type'] = awsSigV4Client.defaultContentType;
198
+ }
199
+ if (!headers['Accept']) {
200
+ headers['Accept'] = awsSigV4Client.defaultAcceptType;
201
+ }
202
+ let body = request.body || {}; //{ ...request.body };
203
+ // override request body and set to empty when signing GET requests
204
+ if (verb === 'GET' || !request.body) {
205
+ body = '';
206
+ }
207
+ else {
208
+ body = body && typeof body === 'object' ? JSON.stringify(body) : body;
209
+ }
210
+ // If there is no body remove the content-type header so it is not
211
+ // included in SigV4 calculation
212
+ if (body === '' || body === undefined || body === null) {
213
+ delete headers['Content-Type'];
214
+ }
215
+ const datetime = new Date()
216
+ .toISOString()
217
+ .replace(/\.\d{3}Z$/, 'Z')
218
+ .replace(/[:-]|\.\d{3}/g, '');
219
+ headers[X_AMZ_DATE] = datetime;
220
+ // let parser = new URL(awsSigV4Client.endpoint);
221
+ // headers[HOST] = parser.hostname;
222
+ headers[HOST] = awsSigV4Client.host;
223
+ const canonicalRequest = buildCanonicalRequest(verb, path, queryParams, headers, body);
224
+ const hashedCanonicalRequest = hashCanonicalRequest(canonicalRequest);
225
+ const credentialScope = buildCredentialScope(datetime, awsSigV4Client.region, awsSigV4Client.serviceName);
226
+ const stringToSign = buildStringToSign(datetime, credentialScope, hashedCanonicalRequest);
227
+ const signingKey = calculateSigningKey(awsSigV4Client.secretKey, datetime, awsSigV4Client.region, awsSigV4Client.serviceName);
228
+ const signature = calculateSignature(signingKey, stringToSign);
229
+ headers[AUTHORIZATION] = buildAuthorizationHeader(awsSigV4Client.accessKey, credentialScope, headers, signature);
230
+ if (awsSigV4Client.sessionToken) {
231
+ headers[X_AMZ_SECURITY_TOKEN] = awsSigV4Client.sessionToken;
232
+ }
233
+ delete headers[HOST];
234
+ let url = awsSigV4Client.endpoint + path;
235
+ const queryString = buildCanonicalQueryString(queryParams);
236
+ if (queryString) {
237
+ url += `?${queryString}`;
238
+ }
239
+ if (!headers['Content-Type']) {
240
+ headers['Content-Type'] = awsSigV4Client.defaultContentType;
241
+ }
242
+ return {
243
+ headers: headers,
244
+ url: url,
245
+ $client: awsSigV4Client,
246
+ };
247
+ };
248
+ return awsSigV4Client;
249
+ };
250
+ exports.sigV4Client = sigV4Client;
251
+ //# sourceMappingURL=sig-v4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sig-v4.js","sourceRoot":"","sources":["../../../src/extended/libs/sig-v4.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lemon-core",
3
- "version": "3.2.10",
3
+ "version": "3.2.11",
4
4
  "description": "Lemon Serverless Micro-Service Platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "test.lemon": "ENV=lemon npm run test",
19
19
  "test:dev": "LS=1 jest --config=jest.config.json --watchAll",
20
20
  "!test:watch": "---- custom test with profile -----",
21
- "test:watch": "LS=1 jest --config=jest.config.json --watchAll",
21
+ "test:watch": "LS=1 AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE=1 jest --config=jest.config.json --watchAll",
22
22
  "test:watch.lemon": "ENV=lemon npm run test:watch",
23
23
  "!prepare": "------- run self-test with jest -----",
24
24
  "prepare": "npm run build",
@@ -60,11 +60,12 @@
60
60
  "body-parser": "^1.20.1",
61
61
  "cookie-parser": "^1.4.6",
62
62
  "cors": "^2.8.5",
63
+ "crypto-js": "^4.2.0",
63
64
  "express": "^4.18.1",
64
65
  "ioredis": "^5.2.3",
65
66
  "js-yaml": "^4.1.0",
66
67
  "jsonwebtoken": "^9.0.0",
67
- "lemon-model": "^1.0.2",
68
+ "lemon-model": "^1.0.3",
68
69
  "lodash": "^4.17.21",
69
70
  "memcached": "^2.2.2",
70
71
  "mime-types": "^2.1.35",
@@ -82,6 +83,7 @@
82
83
  "@types/async": "^3.2.15",
83
84
  "@types/cookie-parser": "^1.4.2",
84
85
  "@types/cors": "^2.8.7",
86
+ "@types/crypto-js": "^4.2.2",
85
87
  "@types/dotenv": "^6.1.1",
86
88
  "@types/jest": "^27.4.1",
87
89
  "@types/js-yaml": "^3.12.5",