diff --git a/package.json b/package.json index 2041a2b..1f8dc80 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hapiness/consul", - "version": "1.0.0", + "version": "1.0.1", "description": "Hapiness module for consul", "main": "commonjs/index.js", "types": "index.d.ts", diff --git a/src/module/interfaces/hapiness.client.options.interface.ts b/src/module/interfaces/hapiness.client.options.interface.ts index d0352fb..d85d24c 100644 --- a/src/module/interfaces/hapiness.client.options.interface.ts +++ b/src/module/interfaces/hapiness.client.options.interface.ts @@ -2,8 +2,7 @@ export interface HapinessConsulClientOptions { scheme?: string; host?: string; port?: number; - username?: string; - password?: string; + token?: string; ca?: string; baseUrl?: string; } diff --git a/src/module/managers/consul.manager.ts b/src/module/managers/consul.manager.ts index 042f854..d4a0865 100644 --- a/src/module/managers/consul.manager.ts +++ b/src/module/managers/consul.manager.ts @@ -1,6 +1,6 @@ import * as consul from 'consul'; -import { bindObservable, appendAuthStringToUrl } from '../utils'; +import { bindObservable } from '../utils'; import { HapinessConsulClientOptions } from '../interfaces'; export class ConsulClientManager { @@ -18,27 +18,15 @@ export class ConsulClientManager { scheme: config.scheme || 'http', host: config.host || '127.0.0.1', port: config.port || 8500, - username: config.username, - password: config.password, + token: config.token, ca: config.ca, baseUrl: config.baseUrl }; - const authString = _config.username && _config.password ? - `${_config.username}:${_config.password}` : ''; - - if (!!authString.length) { - if (_config.baseUrl) { - _config.baseUrl = appendAuthStringToUrl(authString, _config.baseUrl); - } else { - // If there is no baseUrl provided, make it point to the /v1 (as it is done in consul module) - const baseUrl = `${_config.scheme}://${_config.host}:${_config.port}/v1`; - _config.baseUrl = appendAuthStringToUrl(authString, baseUrl); - } - - _config.scheme = undefined; - _config.host = undefined; - _config.port = undefined; + if (_config.baseUrl) { + delete _config.scheme; + delete _config.host; + delete _config.port; } return Object.keys(_config).reduce((finalConf, prop) => { diff --git a/src/module/utils/append.authstring.to.url.ts b/src/module/utils/append.authstring.to.url.ts deleted file mode 100644 index 7a061fa..0000000 --- a/src/module/utils/append.authstring.to.url.ts +++ /dev/null @@ -1,17 +0,0 @@ -export function appendAuthStringToUrl(authString: string, url: string): string { - // No auth string provided, just return the url - if (!authString || !authString.length) { - return url; - } - - // Auth string already in url, skipping - if (url.split('@').length > 1) { - return url; - } - - const splitted = url.split('://'); - splitted.splice(0, 1, `${splitted[0]}://`); - splitted.splice(1, 0, `${authString}@`); - - return splitted.join(''); -} diff --git a/src/module/utils/index.ts b/src/module/utils/index.ts index f573f66..2eb08c8 100644 --- a/src/module/utils/index.ts +++ b/src/module/utils/index.ts @@ -1,2 +1 @@ -export * from './append.authstring.to.url'; export * from './bind.observable'; diff --git a/test/append.authstring.to.url.test.ts b/test/append.authstring.to.url.test.ts deleted file mode 100644 index 7ee4fdf..0000000 --- a/test/append.authstring.to.url.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import * as unit from 'unit.js'; - -import { test, suite } from 'mocha-typescript'; - -import { appendAuthStringToUrl } from '../src/module/utils/append.authstring.to.url'; - -@suite('- Unit appendAuthStringToUrl function test file') -export class AppendAuthStringToUrlTest { - - @test('- Should test the function') - testFunction() { - unit.string(appendAuthStringToUrl('', 'http://10.0.0.1:8500')) - .is('http://10.0.0.1:8500'); - - unit.string(appendAuthStringToUrl('user:pass', 'http://user:pass@10.0.0.1:8500')) - .is('http://user:pass@10.0.0.1:8500'); - - unit.string(appendAuthStringToUrl('user:pass', 'http://10.0.0.1:8500')) - .is('http://user:pass@10.0.0.1:8500'); - } - -} diff --git a/test/consul.client.manager.test.ts b/test/consul.client.manager.test.ts index cd0c72c..bde23aa 100644 --- a/test/consul.client.manager.test.ts +++ b/test/consul.client.manager.test.ts @@ -18,25 +18,11 @@ export class ConsulClientManagerTest { } ); - const managerWithAuth = new ConsulClientManager({ username: 'user1', password: 'passwd' }); + const managerWithAuth = new ConsulClientManager({ token: 'user1-token', baseUrl: 'http://my_base_url:8500/v1' }); unit.object(managerWithAuth.config).is( { - username: 'user1', - password: 'passwd', - baseUrl: 'http://user1:passwd@127.0.0.1:8500/v1' - } - ); - - const managerWithAuthAndBaseUrl = new ConsulClientManager({ - baseUrl: 'https://thisisatest.com:4444', - username: 'user1', - password: 'passwd' - }); - unit.object(managerWithAuthAndBaseUrl.config).is( - { - username: 'user1', - password: 'passwd', - baseUrl: 'https://user1:passwd@thisisatest.com:4444' + token: 'user1-token', + baseUrl: 'http://my_base_url:8500/v1' } ); }