[tarantool-patches] [PATCH 1/3] Do not force login/pass in URI

AKhatskevich avkhatskevich at tarantool.org
Sat Jun 23 00:43:33 MSK 2018


All access rights would be checked explicitly by Tarantool.

Closes #47
---
 test/unit/config.result   | 14 ++++++++++++++
 test/unit/config.test.lua |  6 ++++++
 vshard/cfg.lua            |  7 +++----
 3 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/test/unit/config.result b/test/unit/config.result
index 6b4f87b..847536c 100644
--- a/test/unit/config.result
+++ b/test/unit/config.result
@@ -506,3 +506,17 @@ _ = lcfg.check(cfg)
 replica.name = 'storage'
 ---
 ...
+-- gh-47: Check uri
+_, err = pcall(lcfg.check_uri, 'invalid uri')
+---
+...
+err:match('Invalid URI.*')
+---
+- 'Invalid URI: invalid uri'
+...
+lcfg.check_uri('127.0.0.1')
+---
+...
+lcfg.check_uri('user:password at localhost')
+---
+...
diff --git a/test/unit/config.test.lua b/test/unit/config.test.lua
index 0f549d3..af1dd7d 100644
--- a/test/unit/config.test.lua
+++ b/test/unit/config.test.lua
@@ -206,3 +206,9 @@ _ = lcfg.check(cfg)
 replica.name = nil
 _ = lcfg.check(cfg)
 replica.name = 'storage'
+
+-- gh-47: Check uri
+_, err = pcall(lcfg.check_uri, 'invalid uri')
+err:match('Invalid URI.*')
+lcfg.check_uri('127.0.0.1')
+lcfg.check_uri('user:password at localhost')
diff --git a/vshard/cfg.lua b/vshard/cfg.lua
index f5db4c0..5644d2c 100644
--- a/vshard/cfg.lua
+++ b/vshard/cfg.lua
@@ -5,10 +5,8 @@ local luri = require('uri')
 local consts = require('vshard.consts')
 
 local function check_uri(uri)
-    uri = luri.parse(uri)
-    if uri.login == nil or uri.password == nil then
-        error('URI must contain login and password')
-    end
+    local parsed = luri.parse(uri)
+    assert(parsed, 'Invalid URI: ' .. uri)
 end
 
 local function check_master(master, ctx)
@@ -251,5 +249,6 @@ end
 
 return {
     check = cfg_check,
+    check_uri = check_uri,
     remove_non_box_options = remove_non_box_options,
 }
-- 
2.14.1





More information about the Tarantool-patches mailing list