
- use express instead of connect - Return http request status code from shovel proxies Change-Id: I562c8c738f3e383eb85034469a61ae1f462ae8cd
67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
// Copyright 2015, EMC, Inc.
|
|
|
|
/*eslint-env node*/
|
|
/* keystone authentication */
|
|
var config = require('./../../../config.json');
|
|
var client = require('./../client');
|
|
var Promise = require('bluebird');
|
|
var encryption = require('./../../services/encryption');
|
|
var logger = require('./../../services/logger').Logger;
|
|
|
|
Promise.promisifyAll(client);
|
|
|
|
var request = {
|
|
host: config.keystone.httpHost,
|
|
path: '/' + config.keystone.version + '/tokens',
|
|
port: config.keystone.httpPort,
|
|
token: '',
|
|
data: {},
|
|
api: {},
|
|
useragent: ''
|
|
};
|
|
|
|
var KeystoneAuthentication = {
|
|
authenticatePassword: function (tenantName, username, password) {
|
|
'use strict';
|
|
var decrypted;
|
|
try {
|
|
decrypted = encryption.decrypt(password);
|
|
} catch (err) {
|
|
logger.error(err);
|
|
//return empty promise
|
|
return Promise.resolve();
|
|
}
|
|
request.data = JSON.stringify(
|
|
{
|
|
auth: {
|
|
tenantName: tenantName,
|
|
passwordCredentials: {
|
|
username: username,
|
|
password: decrypted
|
|
|
|
}
|
|
}
|
|
});
|
|
return client.PostAsync(request);
|
|
},
|
|
|
|
authenticateToken: function (tenantName, username, token) {
|
|
'use strict';
|
|
request.data = JSON.stringify(
|
|
{
|
|
auth: {
|
|
tenantName: tenantName,
|
|
token: {
|
|
id: token
|
|
}
|
|
}
|
|
});
|
|
return client.PostAsync(request);
|
|
},
|
|
getStatus: function () {
|
|
'use strict';
|
|
return client.getStatus();
|
|
}
|
|
};
|
|
module.exports = Object.create(KeystoneAuthentication);
|