@@ -260,34 +260,39 @@ object SSLDebugConfig {
260260 * default.
261261 * @param disableHostnameVerification Whether hostname verification should be disabled. Be aware: SSL Config itself is not using this config.
262262 * However, it was kept because 3rd party libraries rely on its existence.
263+ * @param disableSNI Whether SNI should be disabled (up to client library to respect this setting or not)
263264 * @param acceptAnyCertificate Whether any X.509 certificate should be accepted or not.
264265 */
265266final class SSLLooseConfig private [sslconfig] (
266267 val acceptAnyCertificate : Boolean = false ,
267268 val allowLegacyHelloMessages : Option [Boolean ] = None ,
268269 val allowUnsafeRenegotiation : Option [Boolean ] = None ,
269270 val disableHostnameVerification : Boolean = false ,
271+ val disableSNI : Boolean = false ,
270272) {
271273
272274 def withAcceptAnyCertificate (value : Boolean ): SSLLooseConfig = copy(acceptAnyCertificate = value)
273275 def withAllowLegacyHelloMessages (value : Option [Boolean ]): SSLLooseConfig = copy(allowLegacyHelloMessages = value)
274276 def withAllowUnsafeRenegotiation (value : Option [Boolean ]): SSLLooseConfig = copy(allowUnsafeRenegotiation = value)
275277 def withDisableHostnameVerification (value : Boolean ): SSLLooseConfig = copy(disableHostnameVerification = value)
278+ def withDisableSNI (value : Boolean ): SSLLooseConfig = copy(disableSNI = value)
276279
277280 private def copy (
278281 acceptAnyCertificate : Boolean = acceptAnyCertificate,
279282 allowLegacyHelloMessages : Option [Boolean ] = allowLegacyHelloMessages,
280283 allowUnsafeRenegotiation : Option [Boolean ] = allowUnsafeRenegotiation,
281284 disableHostnameVerification : Boolean = disableHostnameVerification,
285+ disableSNI : Boolean = disableSNI,
282286 ): SSLLooseConfig = new SSLLooseConfig (
283287 acceptAnyCertificate = acceptAnyCertificate,
284288 allowLegacyHelloMessages = allowLegacyHelloMessages,
285289 allowUnsafeRenegotiation = allowUnsafeRenegotiation,
286290 disableHostnameVerification = disableHostnameVerification,
291+ disableSNI = disableSNI,
287292 )
288293
289294 override def toString =
290- s """ SSLLooseConfig( ${acceptAnyCertificate}, ${allowLegacyHelloMessages}, ${allowUnsafeRenegotiation}, ${disableHostnameVerification}) """
295+ s """ SSLLooseConfig( ${acceptAnyCertificate}, ${allowLegacyHelloMessages}, ${allowUnsafeRenegotiation}, ${disableHostnameVerification}, ${disableSNI} ) """
291296}
292297object SSLLooseConfig {
293298 def apply () = new SSLLooseConfig ()
@@ -459,12 +464,14 @@ class SSLConfigParser(c: EnrichedConfig, classLoader: ClassLoader, loggerFactory
459464 val allowMessages = config.getOptional[Boolean ](" allowLegacyHelloMessages" )
460465 val allowUnsafeRenegotiation = config.getOptional[Boolean ](" allowUnsafeRenegotiation" )
461466 val disableHostnameVerification = config.getOptional[Boolean ](" disableHostnameVerification" ).getOrElse(false )
467+ val disableSNI = config.get[Boolean ](" disableSNI" )
462468 val acceptAnyCertificate = config.get[Boolean ](" acceptAnyCertificate" )
463469
464470 new SSLLooseConfig (
465471 allowLegacyHelloMessages = allowMessages,
466472 allowUnsafeRenegotiation = allowUnsafeRenegotiation,
467473 disableHostnameVerification = disableHostnameVerification,
474+ disableSNI = disableSNI,
468475 acceptAnyCertificate = acceptAnyCertificate
469476 )
470477 }
0 commit comments