Fix SslOptions.isSpecified() logic

Prior to this commit `SslOptions.isSpecified()` only returned `true` if
both ciphers and enabled protocols were set. If should have returned
`true` if either were set.

Fixes gh-43082
This commit is contained in:
Phillip Webb
2024-11-08 23:58:48 -08:00
parent bebdf69552
commit 4f7de1c889
2 changed files with 20 additions and 2 deletions

View File

@@ -45,7 +45,7 @@ public interface SslOptions {
* @return {@code true} if SSL options have been specified
*/
default boolean isSpecified() {
return (getCiphers() != null) && (getEnabledProtocols() != null);
return (getCiphers() != null) || (getEnabledProtocols() != null);
}
/**

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -72,4 +72,22 @@ class SslOptionsTests {
assertThat(options.getEnabledProtocols()).isNull();
}
@Test
void isSpecifiedWhenHasCiphers() {
SslOptions options = SslOptions.of(Set.of("a", "b", "c"), null);
assertThat(options.isSpecified()).isTrue();
}
@Test
void isSpecifiedWhenHasEnabledProtocols() {
SslOptions options = SslOptions.of(null, Set.of("d", "e", "f"));
assertThat(options.isSpecified()).isTrue();
}
@Test
void isSpecifiedWhenHasNoCiphersOrEnabledProtocols() {
SslOptions options = SslOptions.NONE;
assertThat(options.isSpecified()).isFalse();
}
}