From f52bf3ff572edd3fffd4584cb32c1232eb9f9a63 Mon Sep 17 00:00:00 2001 From: dengliming Date: Sun, 14 Mar 2021 01:31:28 +0800 Subject: [PATCH 1/4] Add support AUTH2 argument to MIGRATE --- .../clients/jedis/params/MigrateParams.java | 34 +++++++++++++++++++ .../jedis/tests/commands/MigrateTest.java | 10 ++++++ 2 files changed, 44 insertions(+) diff --git a/src/main/java/redis/clients/jedis/params/MigrateParams.java b/src/main/java/redis/clients/jedis/params/MigrateParams.java index 198f7ce7e2..26a4fde416 100644 --- a/src/main/java/redis/clients/jedis/params/MigrateParams.java +++ b/src/main/java/redis/clients/jedis/params/MigrateParams.java @@ -1,10 +1,16 @@ package redis.clients.jedis.params; +import redis.clients.jedis.util.SafeEncoder; + +import java.util.ArrayList; +import java.util.List; + public class MigrateParams extends Params { private static final String COPY = "COPY"; private static final String REPLACE = "REPLACE"; private static final String AUTH = "AUTH"; + private static final String AUTH2 = "AUTH2"; public MigrateParams() { } @@ -27,4 +33,32 @@ public MigrateParams auth(String password) { addParam(AUTH, password); return this; } + + public MigrateParams auth2(String username, String password) { + addParam(AUTH2, new String[] { username, password }); + return this; + } + + public byte[][] getByteParams() { + List byteParams = new ArrayList<>(); + + if (contains(COPY)) { + byteParams.add(SafeEncoder.encode(COPY)); + } + if (contains(REPLACE)) { + byteParams.add(SafeEncoder.encode(REPLACE)); + } + if (contains(AUTH)) { + byteParams.add(SafeEncoder.encode(AUTH)); + byteParams.add(SafeEncoder.encode((String) getParam(AUTH))); + } + if (contains(AUTH2)) { + byteParams.add(SafeEncoder.encode(AUTH2)); + String[] nameAndPass = (String[]) getParam(AUTH2); + byteParams.add(SafeEncoder.encode(nameAndPass[0])); + byteParams.add(SafeEncoder.encode(nameAndPass[1])); + } + + return byteParams.toArray(new byte[byteParams.size()][]); + } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java index 1ad3c6098a..1e01d92a5e 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java @@ -154,6 +154,16 @@ public void migrateAuth() { assertNull(jedis.get(bfoo)); } + @Test + public void migrateAuth2() { + jedis.set("foo", "bar"); + destAuth.aclSetUser("acljedis", "on", "allcommands", "allkeys", ">fizzbuzz"); + assertEquals("OK", + jedis.migrate(host, portAuth, dbAuth, timeout, new MigrateParams().auth2("acljedis", "fizzbuzz"), "foo")); + assertEquals("bar", destAuth.get("foo")); + assertNull(jedis.get("foo")); + } + @Test public void migrateCopyReplaceAuth() { jedis.set("foo", "bar1"); From c681718c415a18cc17f6777fcfbf29480559cc07 Mon Sep 17 00:00:00 2001 From: dengliming Date: Sun, 14 Mar 2021 23:43:19 +0800 Subject: [PATCH 2/4] fix review --- .../clients/jedis/params/MigrateParams.java | 4 ++-- .../jedis/tests/commands/MigrateTest.java | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/redis/clients/jedis/params/MigrateParams.java b/src/main/java/redis/clients/jedis/params/MigrateParams.java index 26a4fde416..63fe04b6df 100644 --- a/src/main/java/redis/clients/jedis/params/MigrateParams.java +++ b/src/main/java/redis/clients/jedis/params/MigrateParams.java @@ -39,6 +39,7 @@ public MigrateParams auth2(String username, String password) { return this; } + @Override public byte[][] getByteParams() { List byteParams = new ArrayList<>(); @@ -51,8 +52,7 @@ public byte[][] getByteParams() { if (contains(AUTH)) { byteParams.add(SafeEncoder.encode(AUTH)); byteParams.add(SafeEncoder.encode((String) getParam(AUTH))); - } - if (contains(AUTH2)) { + } else if (contains(AUTH2)) { byteParams.add(SafeEncoder.encode(AUTH2)); String[] nameAndPass = (String[]) getParam(AUTH2); byteParams.add(SafeEncoder.encode(nameAndPass[0])); diff --git a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java index 1e01d92a5e..e39b6b7135 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java @@ -156,12 +156,18 @@ public void migrateAuth() { @Test public void migrateAuth2() { - jedis.set("foo", "bar"); - destAuth.aclSetUser("acljedis", "on", "allcommands", "allkeys", ">fizzbuzz"); - assertEquals("OK", - jedis.migrate(host, portAuth, dbAuth, timeout, new MigrateParams().auth2("acljedis", "fizzbuzz"), "foo")); - assertEquals("bar", destAuth.get("foo")); - assertNull(jedis.get("foo")); + dest.set("foo", "bar"); + assertEquals("OK", dest.migrate(host, hnp.getPort(), 0, timeout, + new MigrateParams().auth2("acljedis", "fizzbuzz"), "foo")); + assertEquals("bar", jedis.get("foo")); + assertNull(dest.get("foo")); + + // binary + dest.set(bfoo1, bbar1); + assertEquals("OK", dest.migrate(host, hnp.getPort(), 0, timeout, + new MigrateParams().auth2("acljedis", "fizzbuzz"), bfoo1)); + assertEquals(bbar1, jedis.get(bfoo1)); + assertNull(dest.get(bfoo1)); } @Test From 61343f467fb5f194af2396b77f7e80c4fbc4b1f5 Mon Sep 17 00:00:00 2001 From: dengliming Date: Sun, 14 Mar 2021 23:47:32 +0800 Subject: [PATCH 3/4] fix test --- .../java/redis/clients/jedis/tests/commands/MigrateTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java index e39b6b7135..3ef3a624a8 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java @@ -166,7 +166,7 @@ public void migrateAuth2() { dest.set(bfoo1, bbar1); assertEquals("OK", dest.migrate(host, hnp.getPort(), 0, timeout, new MigrateParams().auth2("acljedis", "fizzbuzz"), bfoo1)); - assertEquals(bbar1, jedis.get(bfoo1)); + assertArrayEquals(bbar1, jedis.get(bfoo1)); assertNull(dest.get(bfoo1)); } From 7b5e18da1bbfb736639addfb63d277bd65a30fc4 Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Sun, 14 Mar 2021 21:47:36 +0600 Subject: [PATCH 4/4] Update migrateAuth2 --- .../redis/clients/jedis/tests/commands/MigrateTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java index e39b6b7135..ca1064f983 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java @@ -156,11 +156,11 @@ public void migrateAuth() { @Test public void migrateAuth2() { - dest.set("foo", "bar"); - assertEquals("OK", dest.migrate(host, hnp.getPort(), 0, timeout, + destAuth.set("foo", "bar"); + assertEquals("OK", destAuth.migrate(host, hnp.getPort(), 0, timeout, new MigrateParams().auth2("acljedis", "fizzbuzz"), "foo")); assertEquals("bar", jedis.get("foo")); - assertNull(dest.get("foo")); + assertNull(destAuth.get("foo")); // binary dest.set(bfoo1, bbar1);