1
0
mirror of https://github.com/square/okhttp.git synced 2025-11-24 18:41:06 +03:00

JSSE Debug in tests (#6041)

This commit is contained in:
Yuri Schimke
2020-05-17 18:10:09 +01:00
committed by GitHub
parent 72cb889c86
commit 15b7d47185
4 changed files with 65 additions and 8 deletions

View File

@@ -48,15 +48,29 @@ class OkHttpClientTestRule : TestRule {
var recordEvents = true
var recordTaskRunner = false
var recordFrames = false
var recordSslDebug = false
private val testLogHandler = object : Handler() {
override fun publish(record: LogRecord) {
val name = record.loggerName
val recorded = (recordTaskRunner && name == TaskRunner::class.java.name) || (recordFrames && name == Http2::class.java.name)
val recorded = when (name) {
TaskRunner::class.java.name -> recordTaskRunner
Http2::class.java.name -> recordFrames
"javax.net.ssl" -> recordSslDebug
else -> false
}
if (recorded) {
synchronized(clientEventsList) {
clientEventsList.add(record.message)
if (record.loggerName == "javax.net.ssl") {
val parameters = record.parameters
if (parameters != null) {
clientEventsList.add(parameters.first().toString())
}
}
}
}
}
@@ -75,6 +89,7 @@ class OkHttpClientTestRule : TestRule {
Logger.getLogger(OkHttpClient::class.java.name).fn()
Logger.getLogger(Http2::class.java.name).fn()
Logger.getLogger(TaskRunner::class.java.name).fn()
Logger.getLogger("javax.net.ssl").fn()
}
fun wrap(eventListener: EventListener) = object : EventListener.Factory {

View File

@@ -357,15 +357,21 @@ open class PlatformRule @JvmOverloads constructor(
init {
val platformSystemProperty = getPlatformSystemProperty()
if (platformSystemProperty == CONSCRYPT_PROPERTY && Security.getProviders()[0].name != "Conscrypt") {
if (!Conscrypt.isAvailable()) {
System.err.println("Warning: Conscrypt not available")
if (platformSystemProperty == JDK9_PROPERTY) {
if (System.getProperty("javax.net.debug") == null) {
System.setProperty("javax.net.debug", "")
}
} else if (platformSystemProperty == CONSCRYPT_PROPERTY) {
if (Security.getProviders()[0].name != "Conscrypt") {
if (!Conscrypt.isAvailable()) {
System.err.println("Warning: Conscrypt not available")
}
val provider = Conscrypt.newProviderBuilder()
.provideTrustManager(true)
.build()
Security.insertProviderAt(provider, 1)
val provider = Conscrypt.newProviderBuilder()
.provideTrustManager(true)
.build()
Security.insertProviderAt(provider, 1)
}
} else if (platformSystemProperty == JDK8_ALPN_PROPERTY) {
if (!isAlpnBootEnabled()) {
System.err.println("Warning: ALPN Boot not enabled")
@@ -379,6 +385,10 @@ open class PlatformRule @JvmOverloads constructor(
System.err.println("Warning: OpenJSSE not available")
}
if (System.getProperty("javax.net.debug") == null) {
System.setProperty("javax.net.debug", "")
}
Security.insertProviderAt(OpenJSSE(), 1)
} else if (platformSystemProperty == BOUNCYCASTLE_PROPERTY && Security.getProviders()[0].name != "BC") {
Security.insertProviderAt(BouncyCastleProvider(), 1)