diff --git a/lib/metrics.js b/lib/metrics.js index a5961661a78e9548535b84c247b1429949ae7766..399dea903be529ff2d481c04dd602b1b18b087f1 100644 --- a/lib/metrics.js +++ b/lib/metrics.js @@ -21,7 +21,8 @@ const winston = require("winston"), configuration = require("./configuration"), path = require('path'), -fs = require('fs'); +fs = require('fs'), +urlparse = require('urlparse'); // go through the configuration and determine log location // for now we only log to one place @@ -78,9 +79,17 @@ exports.userEntry = function(req) { var ipAddress = req.connection.remoteAddress; if (req.headers['x-real-ip']) ipAddress = req.headers['x-real-ip']; + var referer = null; + try { + // don't log more than we need + referer = urlparse(req.headers['referer']).originOnly().toString(); + } catch(e) { + // ignore malformed referrers. just log null + } + exports.report('signin', { browser: req.headers['user-agent'], - rp: req.headers['referer'], + rp: referer, // IP address (this probably needs to be replaced with the X-forwarded-for value ip: ipAddress });