Skip to content

Commit 8f9d9a9

Browse files
author
Sunny Raj Rathod
authored
Merge pull request #14 from sunnyrajrathod/master
- Fix for #13.
2 parents 3583edb + d7c82ba commit 8f9d9a9

File tree

4 files changed

+52
-5
lines changed

4 files changed

+52
-5
lines changed

lib/apicontrollersbase.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class APIOperationBase {
7878

7979
var obj = this;
8080

81-
logger.debug('Request: ' + JSON.stringify(this._request, 2, null));
81+
logger.debug(JSON.stringify(this._request, 2, null));
8282

8383
var reqOpts = {
8484
url: this._endpoint,
@@ -103,7 +103,7 @@ class APIOperationBase {
103103
{
104104
//TODO: slice added due to BOM character. remove once BOM character is removed.
105105
var responseObj = JSON.parse(body.slice(1));
106-
logger.debug('Response: ' + JSON.stringify(responseObj, 2, null));
106+
logger.debug(JSON.stringify(responseObj, 2, null));
107107
obj._response = responseObj;
108108
/*
109109
var jsonResponse = JSON.stringify(body);

lib/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var config = {
55
'timeout': 120000,
66
'clientId': 'sdk-node-' + pkg.version,
77
'logger': {
8-
'enabled': true,
8+
'enabled': false,
99
'location': './',
1010
//logging levels - { error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5
1111
'level': 'debug'

lib/logger.js

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,66 @@ var config = require('./config').config;
33

44
var logger;
55

6+
var sensitiveFields = ['cardCode', 'cardNumber', 'expirationDate', 'accountNumber', 'nameOnAccount', 'transactionKey', 'email', 'phoneNumber', 'faxNumber', 'dateOfBirth'];
7+
8+
function isJson(str) {
9+
try {
10+
JSON.parse(str);
11+
} catch (e) {
12+
return false;
13+
}
14+
return true;
15+
}
16+
617
if(config.logger.enabled === true) {
718
logger = new (winston.Logger)({
819
transports: [
920
new (winston.transports.File)({filename: config.logger.location + '/sdk-node.log', level: config.logger.level})
1021
]
1122
});
23+
24+
//Adding filter for sensitive fields that should not be logged.
25+
logger.filters.push(function(level, msg, timestamp){
26+
if(isJson(msg))
27+
{
28+
try{
29+
return maskSensitiveFields(JSON.parse(msg));
30+
}
31+
catch (e)
32+
{
33+
return 'Error while logging the message.';
34+
}
35+
}
36+
else
37+
return msg;
38+
});
1239
}
1340
else {
1441
logger = new (winston.Logger)({
1542
transports: []
1643
});
1744
}
1845

19-
//logging levels - { error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5 }
46+
function maskSensitiveFields(jsonMsg){
47+
48+
if (jsonMsg instanceof Object) {
49+
50+
var prop;
51+
52+
for (prop in jsonMsg){
53+
var isFieldSensitive = (sensitiveFields.indexOf(prop) > -1);
54+
55+
if(isFieldSensitive === true)
56+
{
57+
jsonMsg[prop] = new Array(jsonMsg[prop].length + 1).join('X');
58+
}
59+
else if (jsonMsg.hasOwnProperty(prop)){
60+
maskSensitiveFields(jsonMsg[prop]);
61+
}
62+
}
63+
}
64+
65+
return JSON.stringify(jsonMsg);
66+
}
2067

2168
module.exports.logger = logger;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "authorizenet",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"description": "nodejs sdk for Authorize.Net",
55
"main": "lib/authorizenet.js",
66
"directories": {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy