1
0
Fork 0

Added basic auth support to Foxx app manager.

This commit is contained in:
Alan Plum 2015-07-14 18:11:00 +02:00
parent a435a96ea6
commit f5ce6e4331
1 changed files with 18 additions and 1 deletions

View File

@ -49,6 +49,8 @@ var TemplateEngine = require("org/arangodb/foxx/templateEngine").Engine;
var routeApp = require("org/arangodb/foxx/routing").routeApp;
var exportApp = require("org/arangodb/foxx/routing").exportApp;
var invalidateExportCache = require("org/arangodb/foxx/routing").invalidateExportCache;
var formatUrl = require('url').format;
var parseUrl = require('url').parse;
var arangodb = require("org/arangodb");
var ArangoError = arangodb.ArangoError;
var db = arangodb.db;
@ -733,12 +735,27 @@ var buildGithubUrl = function (appInfo) {
var installAppFromRemote = function(url, targetPath) {
var tempFile = fs.getTempFile("downloads", false);
var auth = undefined;
var urlObj = parseUrl(url);
if (urlObj.auth) {
require('console').log('old path', url);
auth = urlObj.auth.split(':');
auth = {
username: decodeURIComponent(auth[0]),
password: decodeURIComponent(auth[1])
};
delete urlObj.auth;
url = formatUrl(urlObj);
require('console').log('new path', url);
}
try {
var result = download(url, "", {
method: "get",
followRedirects: true,
timeout: 30
timeout: 30,
auth: auth
}, tempFile);
if (result.code < 200 || result.code > 299) {