xzwebx-httpfilter 1.2.5 → 1.3.1
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.
- package/HttpFilter.js +88 -26
- package/package.json +1 -1
package/HttpFilter.js
CHANGED
|
@@ -125,44 +125,54 @@ function CheckReq(req, res, next) {
|
|
|
125
125
|
}
|
|
126
126
|
function cycleCheckParams(msgFieldMap, data) {
|
|
127
127
|
let retMsgData = null
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
!msgFieldMap['__FieldCfg'].ifMust) {
|
|
128
|
+
|
|
129
|
+
if (!msgFieldMap) {
|
|
131
130
|
return null
|
|
132
131
|
}
|
|
133
132
|
|
|
133
|
+
let fCfgItem = null
|
|
134
|
+
let isRoot = true
|
|
135
|
+
if (msgFieldMap['__FieldCfg']) {
|
|
136
|
+
isRoot = false
|
|
137
|
+
fCfgItem = msgFieldMap['__FieldCfg']
|
|
138
|
+
}
|
|
139
|
+
|
|
134
140
|
for (let fieldName in msgFieldMap) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
return null
|
|
139
|
-
}
|
|
141
|
+
if (isRoot) {
|
|
142
|
+
fCfgItem = msgFieldMap[fieldName]['__FieldCfg']
|
|
143
|
+
}
|
|
140
144
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
145
|
+
if (fCfgItem.fieldType == 'STR') {
|
|
146
|
+
retMsgData = IsStringOk(fCfgItem, data)
|
|
147
|
+
} else if (fCfgItem.fieldType == 'INT') {
|
|
148
|
+
retMsgData = IsIntOk(fCfgItem, data)
|
|
149
|
+
} else if (fCfgItem.fieldType == 'OBJ') {
|
|
150
|
+
retMsgData = IsObjOk(fCfgItem, data)
|
|
151
|
+
} else if (fCfgItem.fieldType == 'LIST') {
|
|
152
|
+
retMsgData = IsListOk(fCfgItem, data)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (retMsgData) {
|
|
156
|
+
return retMsgData
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (fieldName == '__FieldCfg') {
|
|
154
160
|
continue
|
|
155
161
|
}
|
|
156
|
-
let fatherFieldType =
|
|
157
|
-
if (fatherFieldType == 'LIST' || (fatherFieldType == 'OBJ' &&
|
|
162
|
+
let fatherFieldType = fCfgItem.fieldType
|
|
163
|
+
if (fatherFieldType == 'LIST' || (fatherFieldType == 'OBJ' && fCfgItem.keyType == 'VOBJ')) {
|
|
158
164
|
for (let idx in data) {
|
|
159
|
-
retMsgData = cycleCheckParams(
|
|
165
|
+
retMsgData = cycleCheckParams(msgFieldMap[fieldName], data[idx])
|
|
160
166
|
if (retMsgData) {
|
|
161
167
|
return retMsgData
|
|
162
168
|
}
|
|
163
169
|
}
|
|
164
170
|
} else {
|
|
165
|
-
|
|
171
|
+
if (isRoot) {
|
|
172
|
+
retMsgData = cycleCheckParams(msgFieldMap[fieldName], data)
|
|
173
|
+
} else {
|
|
174
|
+
retMsgData = cycleCheckParams(msgFieldMap[fieldName], data[fieldName])
|
|
175
|
+
}
|
|
166
176
|
}
|
|
167
177
|
|
|
168
178
|
if (retMsgData) {
|
|
@@ -172,6 +182,19 @@ function cycleCheckParams(msgFieldMap, data) {
|
|
|
172
182
|
return null
|
|
173
183
|
}
|
|
174
184
|
function IsStringOk(fCfgItem, paramValue) {
|
|
185
|
+
if (!fCfgItem || !fCfgItem.ifMust) {
|
|
186
|
+
return null
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
if (fCfgItem.ifMust == 'NO' && (
|
|
190
|
+
paramValue == undefined ||
|
|
191
|
+
paramValue == null ||
|
|
192
|
+
paramValue == '' ||
|
|
193
|
+
(typeof paramValue === 'object' && !paramValue.length && !Object.keys(paramValue).length))
|
|
194
|
+
) {
|
|
195
|
+
return null
|
|
196
|
+
}
|
|
197
|
+
|
|
175
198
|
if (!paramValue) {
|
|
176
199
|
return ['NULL_STR_FIELD', fCfgItem.fieldUrl]
|
|
177
200
|
}
|
|
@@ -192,7 +215,7 @@ function IsStringOk(fCfgItem, paramValue) {
|
|
|
192
215
|
}
|
|
193
216
|
}
|
|
194
217
|
} else {
|
|
195
|
-
if (parseInt(rule.exprVal[0])
|
|
218
|
+
if (paramValue.length >= parseInt(rule.exprVal[0]) && paramValue.length <= parseInt(rule.exprVal[1])) {
|
|
196
219
|
isPass = true
|
|
197
220
|
}
|
|
198
221
|
}
|
|
@@ -279,6 +302,19 @@ function IsStringOk(fCfgItem, paramValue) {
|
|
|
279
302
|
return null
|
|
280
303
|
}
|
|
281
304
|
function IsIntOk(fCfgItem, paramValue) {
|
|
305
|
+
if (!fCfgItem || !fCfgItem.ifMust) {
|
|
306
|
+
return null
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
if (fCfgItem.ifMust == 'NO' && (
|
|
310
|
+
paramValue == undefined ||
|
|
311
|
+
paramValue == null ||
|
|
312
|
+
paramValue == '' ||
|
|
313
|
+
(typeof paramValue === 'object' && !paramValue.length && !Object.keys(paramValue).length))
|
|
314
|
+
) {
|
|
315
|
+
return null
|
|
316
|
+
}
|
|
317
|
+
|
|
282
318
|
if (paramValue == undefined) {
|
|
283
319
|
return ['NULL_INT_FIELD', fCfgItem.fieldUrl]
|
|
284
320
|
}
|
|
@@ -358,6 +394,19 @@ function IsIntOk(fCfgItem, paramValue) {
|
|
|
358
394
|
return null
|
|
359
395
|
}
|
|
360
396
|
function IsObjOk(fCfgItem, paramValue) {
|
|
397
|
+
if (!fCfgItem || !fCfgItem.ifMust) {
|
|
398
|
+
return null
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
if (fCfgItem.ifMust == 'NO' && (
|
|
402
|
+
paramValue == undefined ||
|
|
403
|
+
paramValue == null ||
|
|
404
|
+
paramValue == '' ||
|
|
405
|
+
(typeof paramValue === 'object' && !paramValue.length && !Object.keys(paramValue).length))
|
|
406
|
+
) {
|
|
407
|
+
return null
|
|
408
|
+
}
|
|
409
|
+
|
|
361
410
|
if (!paramValue) {
|
|
362
411
|
return ['NULL_FIELD', fCfgItem.fieldUrl]
|
|
363
412
|
}
|
|
@@ -373,6 +422,19 @@ function IsObjOk(fCfgItem, paramValue) {
|
|
|
373
422
|
return null
|
|
374
423
|
}
|
|
375
424
|
function IsListOk(fCfgItem, paramValue) {
|
|
425
|
+
if (!fCfgItem || !fCfgItem.ifMust) {
|
|
426
|
+
return null
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
if (fCfgItem.ifMust == 'NO' && (
|
|
430
|
+
paramValue == undefined ||
|
|
431
|
+
paramValue == null ||
|
|
432
|
+
paramValue == '' ||
|
|
433
|
+
(typeof paramValue === 'object' && !paramValue.length && !Object.keys(paramValue).length))
|
|
434
|
+
) {
|
|
435
|
+
return null
|
|
436
|
+
}
|
|
437
|
+
|
|
376
438
|
if (!paramValue) {
|
|
377
439
|
return ['NULL_FIELD', fCfgItem.fieldUrl]
|
|
378
440
|
}
|