From 3e4f4b29ab848d28f3d8434fe695f90dab54c43f Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Sun, 1 Jan 2017 00:14:19 -0800 Subject: [PATCH] Read connection request creds from parameters --- lib/api-functions.coffee | 14 ++++++++++++-- lib/config.coffee | 3 ++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/api-functions.coffee b/lib/api-functions.coffee index 6432fef..86d9d5f 100644 --- a/lib/api-functions.coffee +++ b/lib/api-functions.coffee @@ -92,7 +92,11 @@ connectionRequest = (deviceId, callback) -> proj = { 'Device.ManagementServer.ConnectionRequestURL._value' : 1, - 'InternetGatewayDevice.ManagementServer.ConnectionRequestURL._value' : 1 + 'Device.ManagementServer.ConnectionRequestUsername._value', + 'Device.ManagementServer.ConnectionRequestPassword._value', + 'InternetGatewayDevice.ManagementServer.ConnectionRequestURL._value' : 1, + 'InternetGatewayDevice.ManagementServer.ConnectionRequestUsername._value', + 'InternetGatewayDevice.ManagementServer.ConnectionRequestPassword._value' } db.devicesCollection.findOne({_id : deviceId}, proj, (err, device)-> @@ -102,14 +106,20 @@ connectionRequest = (deviceId, callback) -> if device.Device? # TR-181 data model connectionRequestUrl = device.Device.ManagementServer.ConnectionRequestURL._value + username = device.Device.ManagementServer.ConnectionRequestUsername?._value + password = device.Device.ManagementServer.ConnectionRequestPassword?._value else # TR-098 data model connectionRequestUrl = device.InternetGatewayDevice.ManagementServer.ConnectionRequestURL._value + username = device.InternetGatewayDevice.ManagementServer.ConnectionRequestUsername?._value + password = device.InternetGatewayDevice.ManagementServer.ConnectionRequestPassword?._value # for testing #connectionRequestUrl = connectionRequestUrl.replace(/^(http:\/\/)([0-9\.]+)(\:[0-9]+\/[a-zA-Z0-9]+\/?$)/, '$110.1.1.254$3') conReq(connectionRequestUrl, null, (statusCode, authHeader) -> if statusCode == 401 - [username, password] = config.auth.connectionRequest(deviceId) + if not (username and password) and config.auth?.connectionRequest + [username, password] = config.auth.connectionRequest(deviceId) + if authHeader.method is 'Basic' authString = auth.basic(username, password) else if authHeader.method is 'Digest' diff --git a/lib/config.coffee b/lib/config.coffee index 40fab86..78be512 100644 --- a/lib/config.coffee +++ b/lib/config.coffee @@ -160,7 +160,8 @@ get = (option, deviceId) -> # load authentication scripts -exports.auth = require(path.resolve(allConfig.CONFIG_DIR, 'auth')) +try + exports.auth = require(path.resolve(allConfig.CONFIG_DIR, 'auth')) exports.get = get