Skip to content

Commit d60317f

Browse files
author
Kasim Rangwala
committed
blank host crash fix
1 parent 9a2cdf7 commit d60317f

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

app/src/main/java/io/gripxtech/odoojsonrpcclient/core/utils/Retrofit2Helper.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.gripxtech.odoojsonrpcclient.core.utils
22

33
import io.gripxtech.odoojsonrpcclient.App
4+
import io.gripxtech.odoojsonrpcclient.R
45
import io.gripxtech.odoojsonrpcclient.core.Odoo
56
import io.gripxtech.odoojsonrpcclient.gson
67
import okhttp3.*
@@ -9,6 +10,11 @@ import retrofit2.Retrofit
910
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
1011
import retrofit2.converter.gson.GsonConverterFactory
1112
import timber.log.Timber
13+
import java.security.SecureRandom
14+
import java.security.cert.X509Certificate
15+
import javax.net.ssl.SSLContext
16+
import javax.net.ssl.TrustManager
17+
import javax.net.ssl.X509TrustManager
1218

1319

1420
class Retrofit2Helper(
@@ -42,6 +48,9 @@ class Retrofit2Helper(
4248
val retrofit: Retrofit
4349
get() {
4450
if (_retrofit == null) {
51+
if (host.isEmpty()) {
52+
host = app.getString(R.string.host_url)
53+
}
4554
_retrofit = Retrofit.Builder()
4655
.baseUrl(
4756
when (protocol) {
@@ -96,5 +105,24 @@ class Retrofit2Helper(
96105
}.apply {
97106
level = HttpLoggingInterceptor.Level.BODY
98107
})
108+
/*.apply(::unsafeCert)*/
99109
.build()
110+
111+
private fun unsafeCert(builder: OkHttpClient.Builder) {
112+
val trustManagers = arrayOf<TrustManager>(object : X509TrustManager {
113+
override fun checkClientTrusted(chain: Array<out X509Certificate>?, authType: String?) = Unit
114+
115+
override fun checkServerTrusted(chain: Array<out X509Certificate>?, authType: String?) = Unit
116+
117+
override fun getAcceptedIssuers(): Array<X509Certificate> = arrayOf()
118+
119+
})
120+
121+
val sslSocketFactory = SSLContext.getInstance("SSL").apply {
122+
init(null, trustManagers, SecureRandom())
123+
}.socketFactory
124+
125+
builder.sslSocketFactory(sslSocketFactory, trustManagers[0] as X509TrustManager)
126+
builder.hostnameVerifier { _, _ -> true }
127+
}
100128
}

0 commit comments

Comments
 (0)