Skip to content

Commit 1055250

Browse files
bhosalejchrys
authored andcommitted
Changed passwordSupplier to passwordPublisher
Motivation: To Improve code readability and maintain consistency in variable and parameter names. Modification: Replaced all instances of the variable and parameter name passwordSupplier with passwordPublisher throughout the codebase. Added an explanation for passwordPublisher to clarify its purpose and usage. Result: Clean up
1 parent c47c4ad commit 1055250

File tree

6 files changed

+40
-38
lines changed

6 files changed

+40
-38
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ ConnectionFactoryOptions options = ConnectionFactoryOptions.builder()
139139
.option(Option.valueOf("tcpKeepAlive"), true) // optional, default false
140140
.option(Option.valueOf("tcpNoDelay"), true) // optional, default false
141141
.option(Option.valueOf("autodetectExtensions"), false) // optional, default false
142+
.option(Option.valueOf("passwordPublisher"), Mono.just("password")) // optional, default null, null means has no passwordPublisher (since 1.0.5 / 0.9.6)
142143
.build();
143144
ConnectionFactory connectionFactory = ConnectionFactories.get(options);
144145

@@ -186,6 +187,7 @@ MySqlConnectionConfiguration configuration = MySqlConnectionConfiguration.builde
186187
.tcpNoDelay(true) // optional, controls TCP No Delay, default is false
187188
.autodetectExtensions(false) // optional, controls extension auto-detect, default is true
188189
.extendWith(MyExtension.INSTANCE) // optional, manual extend an extension into extensions, default using auto-detect
190+
.passwordPublisher(Mono.just("password")) // optional, default null, null means has no password publisher (since 1.0.5 / 0.9.6)
189191
.build();
190192
ConnectionFactory connectionFactory = MySqlConnectionFactory.from(configuration);
191193

@@ -233,6 +235,7 @@ Mono<Connection> connectionMono = Mono.from(connectionFactory.create());
233235
| zeroDateOption | Any value of `ZeroDateOption` | Optional, default `USE_NULL` | The option indicates "zero date" handling, see following notice |
234236
| autodetectExtensions | `true` or `false` | Optional, default is `true` | Controls auto-detect `Extension`s |
235237
| useServerPrepareStatement | `true`, `false` or `Predicate<String>` | Optional, default is `false` | See following notice |
238+
| passwordPublisher | A `Publisher<String>` | Optional, default is `null` | The password publisher, see following notice |
236239

237240
- `SslMode` Considers security level and verification for SSL, make sure the database server supports SSL before you want change SSL mode to `REQUIRED` or higher. **The Unix Domain Socket only offers "DISABLED" available**
238241
- `DISABLED` I don't care about security and don't want to pay the overhead for encryption
@@ -258,6 +261,7 @@ Mono<Connection> connectionMono = Mono.from(connectionFactory.create());
258261
- It is **NOT** RECOMMENDED, enable the `autodetectExtensions` is the best way for extensions
259262
- The `Extensions` will not remove duplicates, make sure it would be not extended twice or more
260263
- The auto-detected `Extension`s will not affect manual extends and will not remove duplicates
264+
- `passwordPublisher` Every time the client attempts to authenticate, it will use the password provided by the `passwordPublisher`.(Since `1.0.5` / `0.9.6`) e.g., You can employ this method for IAM-based authentication when connecting to an AWS Aurora RDS database.
261265

262266
Should use `enum` in [Programmatic](#programmatic-configuration) configuration that not like discovery configurations, except `TlsVersions` (All elements of `TlsVersions` will be always `String` which is case-sensitive).
263267

src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfiguration.java

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,14 @@ public final class MySqlConnectionConfiguration {
9494
private final Extensions extensions;
9595

9696
@Nullable
97-
private final Publisher<String> passwordSupplier;
97+
private final Publisher<String> passwordPublisher;
9898

9999
private MySqlConnectionConfiguration(boolean isHost, String domain, int port, MySqlSslConfiguration ssl,
100100
boolean tcpKeepAlive, boolean tcpNoDelay, @Nullable Duration connectTimeout,
101101
@Nullable Duration socketTimeout, ZeroDateOption zeroDateOption, @Nullable ZoneId serverZoneId,
102102
String user, @Nullable CharSequence password, @Nullable String database,
103103
@Nullable Predicate<String> preferPrepareStatement, int queryCacheSize, int prepareCacheSize,
104-
Extensions extensions, @Nullable Publisher<String> passwordSupplier) {
104+
Extensions extensions, @Nullable Publisher<String> passwordPublisher) {
105105
this.isHost = isHost;
106106
this.domain = domain;
107107
this.port = port;
@@ -119,7 +119,7 @@ private MySqlConnectionConfiguration(boolean isHost, String domain, int port, My
119119
this.queryCacheSize = queryCacheSize;
120120
this.prepareCacheSize = prepareCacheSize;
121121
this.extensions = extensions;
122-
this.passwordSupplier = passwordSupplier;
122+
this.passwordPublisher = passwordPublisher;
123123
}
124124

125125
/**
@@ -210,8 +210,8 @@ Extensions getExtensions() {
210210
}
211211

212212
@Nullable
213-
Publisher<String> getPasswordSupplier() {
214-
return passwordSupplier;
213+
Publisher<String> getPasswordPublisher() {
214+
return passwordPublisher;
215215
}
216216

217217
@Override
@@ -240,34 +240,34 @@ public boolean equals(Object o) {
240240
queryCacheSize == that.queryCacheSize &&
241241
prepareCacheSize == that.prepareCacheSize &&
242242
extensions.equals(that.extensions) &&
243-
Objects.equals(passwordSupplier, that.passwordSupplier);
243+
Objects.equals(passwordPublisher, that.passwordPublisher);
244244
}
245245

246246
@Override
247247
public int hashCode() {
248248
return Objects.hash(isHost, domain, port, ssl, tcpKeepAlive, tcpNoDelay,
249-
connectTimeout, socketTimeout, serverZoneId, zeroDateOption, user, password, database,
250-
preferPrepareStatement, queryCacheSize, prepareCacheSize, extensions, passwordSupplier);
249+
connectTimeout, socketTimeout, serverZoneId, zeroDateOption, user, password, database,
250+
preferPrepareStatement, queryCacheSize, prepareCacheSize, extensions, passwordPublisher);
251251
}
252252

253253
@Override
254254
public String toString() {
255255
if (isHost) {
256256
return "MySqlConnectionConfiguration{, host='" + domain + "', port=" + port + ", ssl=" + ssl +
257-
", tcpNoDelay=" + tcpNoDelay + ", tcpKeepAlive=" + tcpKeepAlive + ", connectTimeout=" +
258-
connectTimeout + ", socketTimeout=" + socketTimeout + ", serverZoneId=" + serverZoneId +
259-
", zeroDateOption=" + zeroDateOption + ", user='" + user + '\'' + ", password=" + password +
260-
", database='" + database + "', preferPrepareStatement=" + preferPrepareStatement +
261-
", queryCacheSize=" + queryCacheSize + ", prepareCacheSize=" + prepareCacheSize +
262-
", extensions=" + extensions + ", passwordSupplier="+ passwordSupplier + '}';
257+
", tcpNoDelay=" + tcpNoDelay + ", tcpKeepAlive=" + tcpKeepAlive + ", connectTimeout=" +
258+
connectTimeout + ", socketTimeout=" + socketTimeout + ", serverZoneId=" + serverZoneId +
259+
", zeroDateOption=" + zeroDateOption + ", user='" + user + '\'' + ", password=" + password +
260+
", database='" + database + "', preferPrepareStatement=" + preferPrepareStatement +
261+
", queryCacheSize=" + queryCacheSize + ", prepareCacheSize=" + prepareCacheSize +
262+
", extensions=" + extensions + ", passwordPublisher=" + passwordPublisher + '}';
263263
}
264264

265265
return "MySqlConnectionConfiguration{, unixSocket='" + domain + "', connectTimeout=" +
266-
connectTimeout + ", socketTimeout=" + socketTimeout + ", serverZoneId=" + serverZoneId +
267-
", zeroDateOption=" + zeroDateOption + ", user='" + user + "', password=" + password +
268-
", database='" + database + "', preferPrepareStatement=" + preferPrepareStatement +
269-
", queryCacheSize=" + queryCacheSize + ", prepareCacheSize=" + prepareCacheSize +
270-
", extensions=" + extensions + ", passwordSupplier="+ passwordSupplier + '}';
266+
connectTimeout + ", socketTimeout=" + socketTimeout + ", serverZoneId=" + serverZoneId +
267+
", zeroDateOption=" + zeroDateOption + ", user='" + user + "', password=" + password +
268+
", database='" + database + "', preferPrepareStatement=" + preferPrepareStatement +
269+
", queryCacheSize=" + queryCacheSize + ", prepareCacheSize=" + prepareCacheSize +
270+
", extensions=" + extensions + ", passwordPublisher=" + passwordPublisher + '}';
271271
}
272272

273273
/**
@@ -339,7 +339,7 @@ public static final class Builder {
339339
private final List<Extension> extensions = new ArrayList<>();
340340

341341
@Nullable
342-
private Publisher<String> passwordSupplier;
342+
private Publisher<String> passwordPublisher;
343343

344344
/**
345345
* Builds an immutable {@link MySqlConnectionConfiguration} with current options.
@@ -365,7 +365,7 @@ public MySqlConnectionConfiguration build() {
365365
return new MySqlConnectionConfiguration(isHost, domain, port, ssl, tcpKeepAlive, tcpNoDelay,
366366
connectTimeout, socketTimeout, zeroDateOption, serverZoneId, user, password, database,
367367
preferPrepareStatement, queryCacheSize, prepareCacheSize,
368-
Extensions.from(extensions, autodetectExtensions), passwordSupplier);
368+
Extensions.from(extensions, autodetectExtensions), passwordPublisher);
369369
}
370370

371371
/**
@@ -794,12 +794,12 @@ public Builder extendWith(Extension extension) {
794794
}
795795

796796
/**
797-
* Registers a password supplier function.
798-
* @param passwordSupplier function to retrieve password before making connection.
797+
* Registers a password publisher function.
798+
* @param passwordPublisher function to retrieve password before making connection.
799799
* @return this {@link Builder}.
800800
*/
801-
public Builder passwordSupplier(Publisher<String> passwordSupplier) {
802-
this.passwordSupplier = passwordSupplier;
801+
public Builder passwordPublisher(Publisher<String> passwordPublisher) {
802+
this.passwordPublisher = passwordPublisher;
803803
return this;
804804
}
805805

src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,9 @@ public static MySqlConnectionFactory from(MySqlConnectionConfiguration configura
9494
Extensions extensions = configuration.getExtensions();
9595
Predicate<String> prepare = configuration.getPreferPrepareStatement();
9696
int prepareCacheSize = configuration.getPrepareCacheSize();
97-
Publisher<String> passwordSupplier = configuration.getPasswordSupplier();
98-
if (Objects.nonNull(passwordSupplier)) {
99-
return Mono.from(passwordSupplier)
97+
Publisher<String> passwordPublisher = configuration.getPasswordPublisher();
98+
if (Objects.nonNull(passwordPublisher)) {
99+
return Mono.from(passwordPublisher)
100100
.flatMap(token -> getMySqlConnection(
101101
configuration, queryCache,
102102
ssl, address,

src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,12 @@ public final class MySqlConnectionFactoryProvider implements ConnectionFactoryPr
205205
public static final Option<Boolean> AUTODETECT_EXTENSIONS = Option.valueOf("autodetectExtensions");
206206

207207
/**
208-
* Password Supplier function can be used to retrieve password before creating a connection.
208+
* Password Publisher function can be used to retrieve password before creating a connection.
209209
* This can be used with Amazon RDS Aurora IAM authentication, wherein it requires token to be generated.
210210
* The token is valid for 15 minutes, and this token will be used as password.
211211
*
212212
*/
213-
public static final Option<Publisher<String>> PASSWORD_SUPPLIER = Option.valueOf("passwordSupplier");
213+
public static final Option<Publisher<String>> PASSWORD_PUBLISHER = Option.valueOf("passwordPublisher");
214214

215215
@Override
216216
public ConnectionFactory create(ConnectionFactoryOptions options) {
@@ -270,8 +270,8 @@ static MySqlConnectionConfiguration setup(ConnectionFactoryOptions options) {
270270
.to(builder::socketTimeout);
271271
mapper.optional(DATABASE).asString()
272272
.to(builder::database);
273-
mapper.optional(PASSWORD_SUPPLIER).as(Publisher.class)
274-
.to(builder::passwordSupplier);
273+
mapper.optional(PASSWORD_PUBLISHER).as(Publisher.class)
274+
.to(builder::passwordPublisher);
275275

276276
return builder.build();
277277
}

src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionConfigurationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import java.util.List;
3535
import java.util.Objects;
3636
import java.util.function.Function;
37-
import java.util.function.Supplier;
3837

3938
import static org.assertj.core.api.Assertions.assertThat;
4039
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
@@ -198,10 +197,10 @@ void validPasswordSupplier() {
198197
Mono.from(MySqlConnectionConfiguration.builder()
199198
.host(HOST)
200199
.user(USER)
201-
.passwordSupplier(passwordSupplier)
200+
.passwordPublisher(passwordSupplier)
202201
.autodetectExtensions(false)
203202
.build()
204-
.getPasswordSupplier())
203+
.getPasswordPublisher())
205204
.as(StepVerifier::create)
206205
.expectNext("123456")
207206
.verifyComplete();

src/test/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactoryProviderTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@
3636
import java.util.Collections;
3737
import java.util.function.Function;
3838
import java.util.function.Predicate;
39-
import java.util.function.Supplier;
4039

41-
import static io.asyncer.r2dbc.mysql.MySqlConnectionFactoryProvider.PASSWORD_SUPPLIER;
40+
import static io.asyncer.r2dbc.mysql.MySqlConnectionFactoryProvider.PASSWORD_PUBLISHER;
4241
import static io.asyncer.r2dbc.mysql.MySqlConnectionFactoryProvider.USE_SERVER_PREPARE_STATEMENT;
4342
import static io.r2dbc.spi.ConnectionFactoryOptions.CONNECT_TIMEOUT;
4443
import static io.r2dbc.spi.ConnectionFactoryOptions.DATABASE;
@@ -402,7 +401,7 @@ void validPasswordSupplier() {
402401
.option(DRIVER, "mysql")
403402
.option(HOST, "127.0.0.1")
404403
.option(USER, "root")
405-
.option(PASSWORD_SUPPLIER, passwordSupplier)
404+
.option(PASSWORD_PUBLISHER, passwordSupplier)
406405
.build();
407406

408407
assertThat(ConnectionFactories.get(options)).isExactlyInstanceOf(MySqlConnectionFactory.class);

0 commit comments

Comments
 (0)