From 7ed05a267c10b579adf6eb022d1ee971e7d7be2b Mon Sep 17 00:00:00 2001 From: Junya Awano Date: Wed, 6 Jun 2018 14:40:58 +0900 Subject: [PATCH] #213 obtain proxy settings from JVM arguments --- .../ExternalDocumentationLinkResolver.kt | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt b/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt index e19ecf76ca2..7f697021ca3 100644 --- a/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt +++ b/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt @@ -42,7 +42,26 @@ class ExternalDocumentationLinkResolver @Inject constructor( val cachedProtocols = setOf("http", "https", "ftp") fun URL.doOpenConnectionToReadContent(timeout: Int = 10000, redirectsAllowed: Int = 16): URLConnection { - val connection = this.openConnection() + + val proxyHost: String? = System.getProperty("http.proxyHost") + val proxyPort: String? = System.getProperty("http.proxyPort") + + val connection = if(proxyHost != null && proxyPort != null){ + val proxyUser: String? = System.getProperty("http.proxyUser") + val proxyPassword: String? = System.getProperty("http.proxyPassword") + if(proxyUser != null && proxyPassword != null){ + Authenticator.setDefault( object : Authenticator() { + override fun getPasswordAuthentication(): PasswordAuthentication { + return PasswordAuthentication(proxyUser,proxyPassword.toCharArray()) + } + }) + } + this.openConnection(Proxy(Proxy.Type.HTTP, + InetSocketAddress(proxyHost,Integer.parseInt(proxyPort)))) + }else{ + this.openConnection() + } + connection.connectTimeout = timeout connection.readTimeout = timeout