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:
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user