Skip to content

Commit ba2c9ba

Browse files
committed
Polishing.
Remove verifyMode setters on LettuceConnectionFactory to not expose additional properties already exposed via ClientConfiguration. Deprecate LettuceClientConfiguration.isVerifyPeer in favor of getVerifyMode. See #2899 Original pull request: #2934
1 parent b41547e commit ba2c9ba

File tree

5 files changed

+33
-33
lines changed

5 files changed

+33
-33
lines changed

src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettuceClientConfiguration.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ class DefaultLettuceClientConfiguration implements LettuceClientConfiguration {
4848
private final Duration shutdownTimeout;
4949
private final Duration shutdownQuietPeriod;
5050

51-
DefaultLettuceClientConfiguration(boolean useSsl, boolean verifyPeer, boolean startTls,
51+
DefaultLettuceClientConfiguration(boolean useSsl, SslVerifyMode verifyMode, boolean startTls,
5252
@Nullable ClientResources clientResources, @Nullable ClientOptions clientOptions, @Nullable String clientName,
5353
@Nullable ReadFrom readFrom, @Nullable RedisCredentialsProviderFactory redisCredentialsProviderFactory,
5454
Duration timeout, Duration shutdownTimeout, @Nullable Duration shutdownQuietPeriod) {
5555

5656
this.useSsl = useSsl;
57-
this.verifyMode = verifyPeer ? SslVerifyMode.FULL : SslVerifyMode.NONE;
57+
this.verifyMode = verifyMode;
5858
this.startTls = startTls;
5959
this.clientResources = Optional.ofNullable(clientResources);
6060
this.clientOptions = Optional.ofNullable(clientOptions);

src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettucePoolingClientConfiguration.java

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public boolean isUseSsl() {
5252
}
5353

5454
@Override
55+
@Deprecated
5556
public boolean isVerifyPeer() {
5657
return clientConfiguration.isVerifyPeer();
5758
}

src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java

+20-5
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,14 @@ public interface LettuceClientConfiguration {
6666

6767
/**
6868
* @return {@literal true} to verify peers when using {@link #isUseSsl() SSL}.
69+
* @deprecated since 3.4, use {@link #getVerifyMode()} for how peer verification is configured.
6970
*/
71+
@Deprecated(since = "3.4")
7072
boolean isVerifyPeer();
7173

7274
/**
7375
* @return the {@link io.lettuce.core.SslVerifyMode}.
76+
* @since 3.4
7477
*/
7578
SslVerifyMode getVerifyMode();
7679

@@ -354,7 +357,7 @@ public LettuceClientConfigurationBuilder shutdownQuietPeriod(Duration shutdownQu
354357
*/
355358
public LettuceClientConfiguration build() {
356359

357-
return new DefaultLettuceClientConfiguration(useSsl, verifyMode != SslVerifyMode.NONE, startTls, clientResources, clientOptions,
360+
return new DefaultLettuceClientConfiguration(useSsl, verifyMode, startTls, clientResources, clientOptions,
358361
clientName, readFrom, redisCredentialsProviderFactory, timeout, shutdownTimeout, shutdownQuietPeriod);
359362
}
360363
}
@@ -364,7 +367,7 @@ public LettuceClientConfiguration build() {
364367
*/
365368
class LettuceSslClientConfigurationBuilder {
366369

367-
private LettuceClientConfigurationBuilder delegate;
370+
private final LettuceClientConfigurationBuilder delegate;
368371

369372
LettuceSslClientConfigurationBuilder(LettuceClientConfigurationBuilder delegate) {
370373

@@ -373,16 +376,28 @@ class LettuceSslClientConfigurationBuilder {
373376
}
374377

375378
/**
376-
* Disable peer verification.
379+
* Configure peer verification.
377380
*
378381
* @return {@literal this} builder.
382+
* @since 3.4
379383
*/
380-
public LettuceSslClientConfigurationBuilder disablePeerVerification() {
384+
public LettuceSslClientConfigurationBuilder verifyPeer(SslVerifyMode verifyMode) {
385+
386+
Assert.notNull(verifyMode, "SslVerifyMode must not be null");
381387

382-
delegate.verifyMode = SslVerifyMode.NONE;
388+
delegate.verifyMode = verifyMode;
383389
return this;
384390
}
385391

392+
/**
393+
* Disable peer verification.
394+
*
395+
* @return {@literal this} builder.
396+
*/
397+
public LettuceSslClientConfigurationBuilder disablePeerVerification() {
398+
return verifyPeer(SslVerifyMode.NONE);
399+
}
400+
386401
/**
387402
* Enable Start TLS to send the first bytes unencrypted.
388403
*

src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java

+4-20
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
import org.springframework.data.redis.connection.RedisConfiguration.ClusterConfiguration;
6565
import org.springframework.data.redis.connection.RedisConfiguration.WithDatabaseIndex;
6666
import org.springframework.data.redis.connection.RedisConfiguration.WithPassword;
67-
import org.springframework.data.redis.connection.lettuce.LettuceConnection.PipeliningFlushPolicy;
6867
import org.springframework.data.redis.util.RedisAssertions;
6968
import org.springframework.data.util.Optionals;
7069
import org.springframework.lang.Nullable;
@@ -476,7 +475,9 @@ public void setUseSsl(boolean useSsl) {
476475
* Returns whether to verify certificate validity/hostname check when SSL is used.
477476
*
478477
* @return whether to verify peers when using SSL.
478+
* @deprecated since 3.4, use {@link LettuceClientConfiguration#getVerifyMode()} instead.
479479
*/
480+
@Deprecated(since = "3.4")
480481
public boolean isVerifyPeer() {
481482
return clientConfiguration.isVerifyPeer();
482483
}
@@ -493,19 +494,6 @@ public void setVerifyPeer(boolean verifyPeer) {
493494
getMutableConfiguration().setVerifyPeer(verifyPeer);
494495
}
495496

496-
/**
497-
* Returns the mode to verify peers when using SSL.
498-
* <p>
499-
* FULL will enable a full certificate verification.
500-
* CA means Lettuces only verify the certificate and skip verifying th hostname matches. NONE will disable
501-
* verification and {@link #isVerifyPeer() isVerifyPeer} will return false with this mode.
502-
*
503-
* @return the verify mode of {@link io.lettuce.core.SslVerifyMode}.
504-
*/
505-
public SslVerifyMode getVerifyMode() {
506-
return getMutableConfiguration().getVerifyMode();
507-
}
508-
509497
/**
510498
* Returns whether to issue a StartTLS.
511499
*
@@ -1479,7 +1467,7 @@ private RedisURI createRedisURIAndApplySettings(String host, int port) {
14791467

14801468
builder.withDatabase(getDatabase());
14811469
builder.withSsl(clientConfiguration.isUseSsl());
1482-
builder.withVerifyPeer(clientConfiguration.isVerifyPeer());
1470+
builder.withVerifyPeer(clientConfiguration.getVerifyMode());
14831471
builder.withStartTls(clientConfiguration.isStartTls());
14841472
builder.withTimeout(clientConfiguration.getCommandTimeout());
14851473

@@ -1705,11 +1693,7 @@ public SslVerifyMode getVerifyMode() {
17051693
}
17061694

17071695
void setVerifyPeer(boolean verifyPeer) {
1708-
this.verifyMode = verifyPeer? SslVerifyMode.FULL: SslVerifyMode.NONE;
1709-
}
1710-
1711-
void setVerifyPeer(SslVerifyMode verifyMode) {
1712-
this.verifyMode = verifyMode;
1696+
this.verifyMode = verifyPeer ? SslVerifyMode.FULL : SslVerifyMode.NONE;
17131697
}
17141698

17151699
@Override

src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ void sslOptionsShouldBeDisabledByDefaultOnClient() {
378378
assertThat(redisUri.isVerifyPeer()).isTrue();
379379
assertThat(redisUri.getVerifyMode().equals(SslVerifyMode.FULL));
380380
assertThat(connectionFactory.isVerifyPeer()).isTrue();
381-
assertThat(connectionFactory.getVerifyMode().equals(SslVerifyMode.FULL));
381+
assertThat(connectionFactory.getClientConfiguration().getVerifyMode().equals(SslVerifyMode.FULL));
382382
}
383383

384384
@Test // DATAREDIS-476
@@ -399,7 +399,7 @@ void sslShouldBeSetCorrectlyOnClient() {
399399
assertThat(redisUri.isVerifyPeer()).isTrue();
400400
assertThat(redisUri.getVerifyMode().equals(SslVerifyMode.FULL));
401401
assertThat(connectionFactory.isVerifyPeer()).isTrue();
402-
assertThat(connectionFactory.getVerifyMode().equals(SslVerifyMode.FULL));
402+
assertThat(connectionFactory.getClientConfiguration().getVerifyMode().equals(SslVerifyMode.FULL));
403403
}
404404

405405
@Test // DATAREDIS-480
@@ -419,7 +419,7 @@ void verifyPeerOptionShouldBeSetCorrectlyOnClient() {
419419
assertThat(redisUri.isVerifyPeer()).isFalse();
420420
assertThat(redisUri.getVerifyMode().equals(SslVerifyMode.NONE));
421421
assertThat(connectionFactory.isVerifyPeer()).isFalse();
422-
assertThat(connectionFactory.getVerifyMode().equals(SslVerifyMode.NONE));
422+
assertThat(connectionFactory.getClientConfiguration().getVerifyMode().equals(SslVerifyMode.NONE));
423423
}
424424

425425
@Test // DATAREDIS-480
@@ -460,7 +460,7 @@ void sslShouldBeSetCorrectlyOnSentinelClient() {
460460
assertThat(redisUri.isVerifyPeer()).isTrue();
461461
assertThat(redisUri.getVerifyMode().equals(SslVerifyMode.FULL));
462462
assertThat(connectionFactory.isVerifyPeer()).isTrue();
463-
assertThat(connectionFactory.getVerifyMode().equals(SslVerifyMode.FULL));
463+
assertThat(connectionFactory.getClientConfiguration().getVerifyMode().equals(SslVerifyMode.FULL));
464464
}
465465

466466
@Test // DATAREDIS-990
@@ -480,7 +480,7 @@ void verifyPeerOptionShouldBeSetCorrectlyOnSentinelClient() {
480480

481481
assertThat(redisUri.isVerifyPeer()).isFalse();
482482
assertThat(connectionFactory.isVerifyPeer()).isFalse();
483-
assertThat(connectionFactory.getVerifyMode().equals(SslVerifyMode.NONE));
483+
assertThat(connectionFactory.getClientConfiguration().getVerifyMode().equals(SslVerifyMode.NONE));
484484
}
485485

486486
@Test // DATAREDIS-990
@@ -757,7 +757,7 @@ void shouldApplyClientConfiguration() {
757757

758758
assertThat(connectionFactory.isUseSsl()).isTrue();
759759
assertThat(connectionFactory.isVerifyPeer()).isFalse();
760-
assertThat(connectionFactory.getVerifyMode().equals(SslVerifyMode.NONE));
760+
assertThat(connectionFactory.getClientConfiguration().getVerifyMode().equals(SslVerifyMode.NONE));
761761
assertThat(connectionFactory.isStartTls()).isTrue();
762762
assertThat(connectionFactory.getClientResources()).isEqualTo(sharedClientResources);
763763
assertThat(connectionFactory.getTimeout()).isEqualTo(Duration.ofMinutes(5).toMillis());

0 commit comments

Comments
 (0)