From 00cdb812875cf70a49a862318a0e9f76ec976390 Mon Sep 17 00:00:00 2001 From: Alex Wilson Date: Fri, 13 Nov 2015 16:19:35 -0800 Subject: [PATCH] joyent/node-triton#55 PUBAPI-1166 Use http-signature for generating Authorization, not sprintf Reviewed by: Trent Mick --- CHANGES.md | 2 ++ lib/cloudapi2.js | 21 +++++++++------------ package.json | 4 ++-- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index ab1afb7..247ef6f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -22,6 +22,8 @@ configuration. This command is still in development. - `triton rbac {instance,image,network,package,}role-tags ...` to list and manage role tags on each of those resources. +- #55 Update of smartdc-auth/sshpk deps, removal of duplicated code for + composing Authorization headers ## 2.1.4 diff --git a/lib/cloudapi2.js b/lib/cloudapi2.js index f097f6e..c070523 100644 --- a/lib/cloudapi2.js +++ b/lib/cloudapi2.js @@ -40,6 +40,7 @@ var LOMStream = require('lomstream').LOMStream; var os = require('os'); var querystring = require('querystring'); var vasync = require('vasync'); +var auth = require('smartdc-auth'); var errors = require('./errors'); var SaferJsonClient = require('./SaferJsonClient'); @@ -136,27 +137,23 @@ CloudApi.prototype._getAuthHeaders = function _getAuthHeaders(callback) { var self = this; var headers = {}; - headers.date = new Date().toUTCString(); - var sigstr = 'date: ' + headers.date; + + var rs = auth.requestSigner({ + sign: self.sign + }); + headers.date = rs.writeDateHeader(); // TODO: token auth support //if (this.token !== undefined) { // obj.headers['X-Auth-Token'] = this.token; //} - self.sign(sigstr, function (err, sig) { - if (err || !sig) { + rs.sign(function (err, authz) { + if (err || !authz) { callback(new errors.SigningError(err)); return; } - - var ident = self.account; - if (self.user) { - ident += '/users/' + self.user; - } - headers.authorization = format( - 'Signature keyId="/%s/keys/%s",algorithm="%s",signature="%s"', - ident, sig.keyId, sig.algorithm, sig.signature); + headers.authorization = authz; callback(null, headers); }); }; diff --git a/package.json b/package.json index b355334..876be37 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,8 @@ "read": "1.0.7", "restify-clients": "1.1.0", "restify-errors": "3.0.0", - "sshpk": "1.4.4", - "smartdc-auth": "2.1.7", + "sshpk": "1.6.x >=1.6.2", + "smartdc-auth": "2.2.3", "strsplit": "1.0.0", "tabula": "1.7.0", "tilde-expansion": "0.0.0",