Skip to content

Commit 4dd5f18

Browse files
committed
fix
1 parent 033493c commit 4dd5f18

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

src/main/java/redis/clients/jedis/DefaultJedisClientConfig.java

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public final class DefaultJedisClientConfig implements JedisClientConfig {
1111
private final int socketTimeoutMillis;
1212
private final int blockingSocketTimeoutMillis;
1313

14-
private volatile Supplier<RedisCredentials> credentials;
14+
private volatile Supplier<RedisCredentials> credentialsProvider;
1515
private final int database;
1616
private final String clientName;
1717

@@ -23,13 +23,13 @@ public final class DefaultJedisClientConfig implements JedisClientConfig {
2323
private final HostAndPortMapper hostAndPortMapper;
2424

2525
private DefaultJedisClientConfig(int connectionTimeoutMillis, int soTimeoutMillis,
26-
int blockingSocketTimeoutMillis, Supplier<RedisCredentials> credentials, int database, String clientName,
27-
boolean ssl, SSLSocketFactory sslSocketFactory, SSLParameters sslParameters,
26+
int blockingSocketTimeoutMillis, Supplier<RedisCredentials> credentialsProvider, int database,
27+
String clientName, boolean ssl, SSLSocketFactory sslSocketFactory, SSLParameters sslParameters,
2828
HostnameVerifier hostnameVerifier, HostAndPortMapper hostAndPortMapper) {
2929
this.connectionTimeoutMillis = connectionTimeoutMillis;
3030
this.socketTimeoutMillis = soTimeoutMillis;
3131
this.blockingSocketTimeoutMillis = blockingSocketTimeoutMillis;
32-
this.credentials = credentials;
32+
this.credentialsProvider = credentialsProvider;
3333
this.database = database;
3434
this.clientName = clientName;
3535
this.ssl = ssl;
@@ -55,25 +55,28 @@ public int getBlockingSocketTimeoutMillis() {
5555
}
5656

5757
@Override
58+
@Deprecated
5859
public String getUser() {
59-
return credentials.get().getUser();
60+
return credentialsProvider.get().getUser();
6061
}
6162

6263
@Override
64+
@Deprecated
6365
public String getPassword() {
64-
return new String(credentials.get().getPassword());
66+
char[] password = credentialsProvider.get().getPassword();
67+
return password == null ? null : new String(credentialsProvider.get().getPassword());
6568
}
6669

6770
@Override
6871
public Supplier<RedisCredentials> getCredentialsProvider() {
69-
return credentials;
72+
return credentialsProvider;
7073
}
7174

7275
@Override
7376
@Deprecated
7477
public synchronized void updatePassword(String password) {
7578
String user = getUser();
76-
((DefaultRedisCredentialsProvider) this.credentials)
79+
((DefaultRedisCredentialsProvider) this.credentialsProvider)
7780
.setCredentials(new DefaultRedisCredentials(user, password));
7881
}
7982

@@ -124,7 +127,7 @@ public static class Builder {
124127

125128
private String user = null;
126129
private String password = null;
127-
private Supplier<RedisCredentials> credentials;
130+
private Supplier<RedisCredentials> credentialsProvider;
128131
private int database = Protocol.DEFAULT_DATABASE;
129132
private String clientName = null;
130133

@@ -139,9 +142,13 @@ private Builder() {
139142
}
140143

141144
public DefaultJedisClientConfig build() {
145+
if (credentialsProvider == null) {
146+
credentialsProvider = new DefaultRedisCredentialsProvider(new DefaultRedisCredentials(user, password));
147+
}
148+
142149
return new DefaultJedisClientConfig(connectionTimeoutMillis, socketTimeoutMillis,
143-
blockingSocketTimeoutMillis, credentials, database, clientName, ssl, sslSocketFactory,
144-
sslParameters, hostnameVerifier, hostAndPortMapper);
150+
blockingSocketTimeoutMillis, credentialsProvider, database, clientName, ssl,
151+
sslSocketFactory, sslParameters, hostnameVerifier, hostAndPortMapper);
145152
}
146153

147154
public Builder timeoutMillis(int timeoutMillis) {
@@ -184,12 +191,12 @@ public Builder password(String password) {
184191
}
185192

186193
public Builder credentials(RedisCredentials credentials) {
187-
this.credentials = new DefaultRedisCredentialsProvider(credentials);
194+
this.credentialsProvider = new DefaultRedisCredentialsProvider(credentials);
188195
return this;
189196
}
190197

191198
public Builder credentialsProvider(Supplier<RedisCredentials> credentials) {
192-
this.credentials = credentials;
199+
this.credentialsProvider = credentials;
193200
return this;
194201
}
195202

@@ -229,6 +236,7 @@ public Builder hostAndPortMapper(HostAndPortMapper hostAndPortMapper) {
229236
}
230237
}
231238

239+
@Deprecated
232240
public static DefaultJedisClientConfig create(int connectionTimeoutMillis, int soTimeoutMillis,
233241
int blockingSocketTimeoutMillis, String user, String password, int database, String clientName,
234242
boolean ssl, SSLSocketFactory sslSocketFactory, SSLParameters sslParameters,
@@ -239,11 +247,13 @@ public static DefaultJedisClientConfig create(int connectionTimeoutMillis, int s
239247
}
240248

241249
public static DefaultJedisClientConfig copyConfig(JedisClientConfig copy) {
250+
Supplier<RedisCredentials> credentialsProvider = copy.getCredentialsProvider();
251+
if (credentialsProvider == null) {
252+
credentialsProvider = new DefaultRedisCredentialsProvider(new DefaultRedisCredentials(copy.getUser(), copy.getPassword()));
253+
}
242254
return new DefaultJedisClientConfig(copy.getConnectionTimeoutMillis(),
243255
copy.getSocketTimeoutMillis(), copy.getBlockingSocketTimeoutMillis(),
244-
new DefaultRedisCredentialsProvider(
245-
new DefaultRedisCredentials(copy.getUser(), copy.getPassword())),
246-
copy.getDatabase(), copy.getClientName(), copy.isSsl(),
256+
credentialsProvider, copy.getDatabase(), copy.getClientName(), copy.isSsl(),
247257
copy.getSslSocketFactory(), copy.getSslParameters(),
248258
copy.getHostnameVerifier(), copy.getHostAndPortMapper());
249259
}

0 commit comments

Comments
 (0)