11package io.gripxtech.odoojsonrpcclient.core.utils
22
33import io.gripxtech.odoojsonrpcclient.App
4+ import io.gripxtech.odoojsonrpcclient.R
45import io.gripxtech.odoojsonrpcclient.core.Odoo
56import io.gripxtech.odoojsonrpcclient.gson
67import okhttp3.*
@@ -9,6 +10,11 @@ import retrofit2.Retrofit
910import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
1011import retrofit2.converter.gson.GsonConverterFactory
1112import 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
1420class 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