Skip to content

Commit 99e9836

Browse files
denglimingsazzad16
andauthored
Add support AUTH2 argument to MIGRATE (#2430)
* Add support AUTH2 argument to MIGRATE * fix review * fix test * Update migrateAuth2 Co-authored-by: M Sazzadul Hoque <[email protected]>
1 parent dbfc929 commit 99e9836

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

src/main/java/redis/clients/jedis/params/MigrateParams.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
package redis.clients.jedis.params;
22

3+
import redis.clients.jedis.util.SafeEncoder;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
38
public class MigrateParams extends Params {
49

510
private static final String COPY = "COPY";
611
private static final String REPLACE = "REPLACE";
712
private static final String AUTH = "AUTH";
13+
private static final String AUTH2 = "AUTH2";
814

915
public MigrateParams() {
1016
}
@@ -27,4 +33,32 @@ public MigrateParams auth(String password) {
2733
addParam(AUTH, password);
2834
return this;
2935
}
36+
37+
public MigrateParams auth2(String username, String password) {
38+
addParam(AUTH2, new String[] { username, password });
39+
return this;
40+
}
41+
42+
@Override
43+
public byte[][] getByteParams() {
44+
List<byte[]> byteParams = new ArrayList<>();
45+
46+
if (contains(COPY)) {
47+
byteParams.add(SafeEncoder.encode(COPY));
48+
}
49+
if (contains(REPLACE)) {
50+
byteParams.add(SafeEncoder.encode(REPLACE));
51+
}
52+
if (contains(AUTH)) {
53+
byteParams.add(SafeEncoder.encode(AUTH));
54+
byteParams.add(SafeEncoder.encode((String) getParam(AUTH)));
55+
} else if (contains(AUTH2)) {
56+
byteParams.add(SafeEncoder.encode(AUTH2));
57+
String[] nameAndPass = (String[]) getParam(AUTH2);
58+
byteParams.add(SafeEncoder.encode(nameAndPass[0]));
59+
byteParams.add(SafeEncoder.encode(nameAndPass[1]));
60+
}
61+
62+
return byteParams.toArray(new byte[byteParams.size()][]);
63+
}
3064
}

src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,22 @@ public void migrateAuth() {
154154
assertNull(jedis.get(bfoo));
155155
}
156156

157+
@Test
158+
public void migrateAuth2() {
159+
destAuth.set("foo", "bar");
160+
assertEquals("OK", destAuth.migrate(host, hnp.getPort(), 0, timeout,
161+
new MigrateParams().auth2("acljedis", "fizzbuzz"), "foo"));
162+
assertEquals("bar", jedis.get("foo"));
163+
assertNull(destAuth.get("foo"));
164+
165+
// binary
166+
dest.set(bfoo1, bbar1);
167+
assertEquals("OK", dest.migrate(host, hnp.getPort(), 0, timeout,
168+
new MigrateParams().auth2("acljedis", "fizzbuzz"), bfoo1));
169+
assertArrayEquals(bbar1, jedis.get(bfoo1));
170+
assertNull(dest.get(bfoo1));
171+
}
172+
157173
@Test
158174
public void migrateCopyReplaceAuth() {
159175
jedis.set("foo", "bar1");

0 commit comments

Comments
 (0)