Skip to content

Commit 765965e

Browse files
authored
Merge pull request #439 from mkurz/disableHostnameVerification
Reintroduce `disableHostnameVerification`
2 parents 102a670 + a38ecf2 commit 765965e

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

build.sbt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,7 @@ lazy val sslConfigCore = project
5555
ProblemFilters.exclude[DirectMissingMethodProblem]("com.typesafe.sslconfig.ssl.SSLLooseConfig.allowWeakCiphers"),
5656
ProblemFilters
5757
.exclude[DirectMissingMethodProblem]("com.typesafe.sslconfig.ssl.SSLLooseConfig.allowWeakProtocols"),
58-
ProblemFilters
59-
.exclude[DirectMissingMethodProblem]("com.typesafe.sslconfig.ssl.SSLLooseConfig.disableHostnameVerification"),
6058
ProblemFilters.exclude[DirectMissingMethodProblem]("com.typesafe.sslconfig.ssl.SSLLooseConfig.disableSNI"),
61-
ProblemFilters.exclude[DirectMissingMethodProblem](
62-
"com.typesafe.sslconfig.ssl.SSLLooseConfig.withDisableHostnameVerification"
63-
),
6459
ProblemFilters.exclude[DirectMissingMethodProblem]("com.typesafe.sslconfig.ssl.SSLLooseConfig.withDisableSNI"),
6560
ProblemFilters.exclude[MissingClassProblem]("com.typesafe.sslconfig.ssl.AlgorithmChecker"),
6661
ProblemFilters.exclude[MissingClassProblem]("com.typesafe.sslconfig.ssl.ClientAuth"),

ssl-config-core/src/main/scala/com/typesafe/sslconfig/ssl/Config.scala

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -257,30 +257,36 @@ object SSLDebugConfig {
257257
* default.
258258
* @param allowUnsafeRenegotiation Whether unsafe renegotiation should be allowed or not. If None, uses the platform
259259
* default.
260+
* @param disableHostnameVerification Whether hostname verification should be disabled. Be aware: SSL Config itself is not using this config.
261+
* However, it was kept because 3rd party libraries rely on its existence.
260262
* @param acceptAnyCertificate Whether any X.509 certificate should be accepted or not.
261263
*/
262264
final class SSLLooseConfig private[sslconfig] (
263265
val acceptAnyCertificate: Boolean = false,
264266
val allowLegacyHelloMessages: Option[Boolean] = None,
265-
val allowUnsafeRenegotiation: Option[Boolean] = None
267+
val allowUnsafeRenegotiation: Option[Boolean] = None,
268+
val disableHostnameVerification: Boolean = false,
266269
) {
267270

268271
def withAcceptAnyCertificate(value: Boolean): SSLLooseConfig = copy(acceptAnyCertificate = value)
269272
def withAllowLegacyHelloMessages(value: Option[Boolean]): SSLLooseConfig = copy(allowLegacyHelloMessages = value)
270273
def withAllowUnsafeRenegotiation(value: Option[Boolean]): SSLLooseConfig = copy(allowUnsafeRenegotiation = value)
274+
def withDisableHostnameVerification(value: Boolean): SSLLooseConfig = copy(disableHostnameVerification = value)
271275

272276
private def copy(
273277
acceptAnyCertificate: Boolean = acceptAnyCertificate,
274278
allowLegacyHelloMessages: Option[Boolean] = allowLegacyHelloMessages,
275-
allowUnsafeRenegotiation: Option[Boolean] = allowUnsafeRenegotiation
279+
allowUnsafeRenegotiation: Option[Boolean] = allowUnsafeRenegotiation,
280+
disableHostnameVerification: Boolean = disableHostnameVerification,
276281
): SSLLooseConfig = new SSLLooseConfig(
277282
acceptAnyCertificate = acceptAnyCertificate,
278283
allowLegacyHelloMessages = allowLegacyHelloMessages,
279-
allowUnsafeRenegotiation = allowUnsafeRenegotiation
284+
allowUnsafeRenegotiation = allowUnsafeRenegotiation,
285+
disableHostnameVerification = disableHostnameVerification,
280286
)
281287

282288
override def toString =
283-
s"""SSLLooseConfig(${acceptAnyCertificate},${allowLegacyHelloMessages},${allowUnsafeRenegotiation})"""
289+
s"""SSLLooseConfig(${acceptAnyCertificate},${allowLegacyHelloMessages},${allowUnsafeRenegotiation},${disableHostnameVerification})"""
284290
}
285291
object SSLLooseConfig {
286292
def apply() = new SSLLooseConfig()
@@ -437,13 +443,15 @@ class SSLConfigParser(c: EnrichedConfig, classLoader: ClassLoader, loggerFactory
437443
*/
438444
def parseLooseOptions(config: EnrichedConfig): SSLLooseConfig = {
439445

440-
val allowMessages = config.getOptional[Boolean]("allowLegacyHelloMessages")
441-
val allowUnsafeRenegotiation = config.getOptional[Boolean]("allowUnsafeRenegotiation")
442-
val acceptAnyCertificate = config.get[Boolean]("acceptAnyCertificate")
446+
val allowMessages = config.getOptional[Boolean]("allowLegacyHelloMessages")
447+
val allowUnsafeRenegotiation = config.getOptional[Boolean]("allowUnsafeRenegotiation")
448+
val disableHostnameVerification = config.getOptional[Boolean]("disableHostnameVerification").getOrElse(false)
449+
val acceptAnyCertificate = config.get[Boolean]("acceptAnyCertificate")
443450

444451
new SSLLooseConfig(
445452
allowLegacyHelloMessages = allowMessages,
446453
allowUnsafeRenegotiation = allowUnsafeRenegotiation,
454+
disableHostnameVerification = disableHostnameVerification,
447455
acceptAnyCertificate = acceptAnyCertificate
448456
)
449457
}

0 commit comments

Comments
 (0)