Skip to content

Commit 93cb746

Browse files
committed
Bring back HostnameVerifier classes used in Pekko < v2 and Akka <= v2.8
1 parent 169b539 commit 93cb746

File tree

3 files changed

+102
-0
lines changed

3 files changed

+102
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Copyright (C) 2015 - 2025 Lightbend Inc. <https://www.lightbend.com>
3+
*/
4+
5+
package com.typesafe.sslconfig.ssl
6+
7+
import java.security.cert.Certificate
8+
import java.security.Principal
9+
import javax.net.ssl.HostnameVerifier
10+
import javax.net.ssl.SSLSession
11+
12+
import com.typesafe.sslconfig.util.LoggerFactory
13+
import sun.security.util.HostnameChecker
14+
15+
@deprecated(
16+
"DefaultHostnameVerifier has been deprecated and does nothing. Please use the javax.net.debug system property.",
17+
"0.4.0"
18+
)
19+
class DefaultHostnameVerifier(mkLogger: LoggerFactory) extends HostnameVerifier {
20+
private val logger = mkLogger(getClass)
21+
22+
def hostnameChecker: HostnameChecker = {
23+
logger.warn(
24+
"DefaultHostnameVerifier has been deprecated and does nothing. Please use the javax.net.debug system property."
25+
)
26+
HostnameChecker.getInstance(HostnameChecker.TYPE_TLS)
27+
}
28+
29+
def matchKerberos(hostname: String, principal: Principal) = {
30+
logger.warn(
31+
"DefaultHostnameVerifier has been deprecated and does nothing. Please use the javax.net.debug system property."
32+
)
33+
true
34+
}
35+
36+
def isKerberos(principal: Principal): Boolean = {
37+
logger.warn(
38+
"DefaultHostnameVerifier has been deprecated and does nothing. Please use the javax.net.debug system property."
39+
)
40+
true
41+
}
42+
43+
def verify(hostname: String, session: SSLSession): Boolean = {
44+
logger.warn(
45+
"DefaultHostnameVerifier has been deprecated and does nothing. Please use the javax.net.debug system property."
46+
)
47+
true
48+
}
49+
50+
/** INTERNAL API */
51+
def matchCertificates(hostname: String, peerCertificates: Array[Certificate]): Boolean = {
52+
logger.warn(
53+
"DefaultHostnameVerifier has been deprecated and does nothing. Please use the javax.net.debug system property."
54+
)
55+
true
56+
}
57+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright (C) 2015 - 2025 Lightbend Inc. <https://www.lightbend.com>
3+
*/
4+
5+
package com.typesafe.sslconfig.ssl
6+
7+
import javax.net.ssl.HostnameVerifier
8+
import javax.net.ssl.SSLSession
9+
10+
import com.typesafe.sslconfig.util.LoggerFactory
11+
12+
/**
13+
* Add a disabled but complaining hostname verifier.
14+
*/
15+
class DisabledComplainingHostnameVerifier(mkLogger: LoggerFactory) extends HostnameVerifier {
16+
17+
private val logger = mkLogger(getClass)
18+
19+
private val defaultHostnameVerifier = new NoopHostnameVerifier
20+
21+
override def verify(hostname: String, sslSession: SSLSession): Boolean = {
22+
val hostNameMatches = defaultHostnameVerifier.verify(hostname, sslSession)
23+
if (!hostNameMatches) {
24+
// TODO fix config paths
25+
val msg =
26+
s"Hostname verification failed on hostname $hostname, " +
27+
"but the connection was accepted because ssl-config.loose.disableHostnameVerification is enabled. " +
28+
"Please fix the X.509 certificate on the host to remove this warning."
29+
logger.warn(msg)
30+
}
31+
true
32+
}
33+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright (C) 2015 - 2025 Lightbend Inc. <https://www.lightbend.com>
3+
*/
4+
5+
package com.typesafe.sslconfig.ssl
6+
7+
import javax.net.ssl.HostnameVerifier
8+
import javax.net.ssl.SSLSession
9+
10+
final class NoopHostnameVerifier extends HostnameVerifier {
11+
def verify(hostname: String, sslSession: SSLSession): Boolean = true
12+
}

0 commit comments

Comments
 (0)