X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fframework%2Fcore%2Fmodules%2Froutes%2Fconfiguration.js;h=b789ff0436df305a6311b7154e602a28d0fddf98;hp=3a686f0942ad7a304349ec6519c6202a06543a09;hb=b78fbe20fd7d976b3e15abb2387b4e329a5ea918;hpb=3a0a737a065670c4928fe841941aa9c4f4d02a56 diff --git a/skyquake/framework/core/modules/routes/configuration.js b/skyquake/framework/core/modules/routes/configuration.js index 3a686f094..b789ff043 100644 --- a/skyquake/framework/core/modules/routes/configuration.js +++ b/skyquake/framework/core/modules/routes/configuration.js @@ -1,6 +1,6 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,7 +18,7 @@ */ /** - * Node configuration routes module. + * Node configuration routes module. * Provides a RESTful API to provide configuration * details such as api_server. * @module framework/core/modules/routes/configuration @@ -30,6 +30,9 @@ var bodyParser = require('body-parser'); var configurationAPI = require('../api/configuration'); var Router = require('express').Router(); var utils = require('../../api_utils/utils'); +var CONSTANTS = require('../../api_utils/constants.js'); +var request = require('request'); +var _ = require('lodash'); Router.use(bodyParser.json()); Router.use(cors()); @@ -48,9 +51,43 @@ Router.put('/server-configuration', cors(), function(req, res) { Router.get('/server-configuration', cors(), function(req, res) { configurationAPI.get(req).then(function(data) { utils.sendSuccessResponse(data, res); - }, function(error) { - utils.sendErrorResponse(error, res); - }); + }, function(error) { + utils.sendErrorResponse(error, res); + }); +}); + +Router.get('/check-auth', function(req, res) { + console.log('testing auth') + var api_server = req.query["api_server"]; + var uri = utils.confdPort(api_server) + '/api/config/'; + + checkAuth(uri, req).then(function(data) { + utils.sendSuccessResponse(data, res); + }, function(error) { + utils.sendErrorResponse(error, res); + }); }); +function checkAuth(uri, req){ + return new Promise(function(resolve, reject) { + request({ + uri: uri, + method: 'GET', + headers: _.extend({}, { + 'Authorization': req.get('Authorization'), + forever: CONSTANTS.FOREVER_ON, + rejectUnauthorized: false, + }) + }, function(error, response, body) { + console.log(arguments) + if( response.statusCode == 401) { + reject({statusCode: 401, error: response.body}); + } else { + resolve({statusCode:200, data:response.body}) + } + }); + }); +} + + module.exports = Router;