fixx ssl handshake exception
This commit is contained in:
@@ -5,10 +5,19 @@ import com.onesignal.OneSignal;
|
|||||||
import com.squareup.picasso.OkHttp3Downloader;
|
import com.squareup.picasso.OkHttp3Downloader;
|
||||||
import com.squareup.picasso.Picasso;
|
import com.squareup.picasso.Picasso;
|
||||||
|
|
||||||
|
import java.security.SecureRandom;
|
||||||
|
|
||||||
|
import javax.net.ssl.SSLContext;
|
||||||
|
import javax.net.ssl.TrustManager;
|
||||||
|
|
||||||
import ch.pizzalemon.android.api.ApiConstants;
|
import ch.pizzalemon.android.api.ApiConstants;
|
||||||
|
import ch.pizzalemon.android.api.SSLTrustManager;
|
||||||
import io.github.inflationx.calligraphy3.CalligraphyConfig;
|
import io.github.inflationx.calligraphy3.CalligraphyConfig;
|
||||||
import io.github.inflationx.calligraphy3.CalligraphyInterceptor;
|
import io.github.inflationx.calligraphy3.CalligraphyInterceptor;
|
||||||
import io.github.inflationx.viewpump.ViewPump;
|
import io.github.inflationx.viewpump.ViewPump;
|
||||||
|
import okhttp3.Cache;
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.logging.HttpLoggingInterceptor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by cimenmus on 11/09/2017.
|
* Created by cimenmus on 11/09/2017.
|
||||||
@@ -35,20 +44,25 @@ public class App extends MultiDexApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initPicasso(){
|
private void initPicasso(){
|
||||||
// DISK CACHE
|
|
||||||
// Disk cache of 2% storage space up to 50MB but no less than 5MB
|
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
|
||||||
// 48 megabyte
|
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||||
//Picasso picasso = new Picasso.Builder(this).downloader(new OkHttp3Downloader(getCacheDir(), 48 * 1024 * 1024)).build();
|
|
||||||
Picasso picasso = new Picasso.Builder(this).downloader(new OkHttp3Downloader(getCacheDir())).build();
|
OkHttpClient.Builder builder = new OkHttpClient.Builder()
|
||||||
|
.cache(new Cache(getCacheDir(), 48 * 1024 * 1024))
|
||||||
|
.connectTimeout(ApiConstants.API_CONNECT_TIMEOUT, java.util.concurrent.TimeUnit.SECONDS)
|
||||||
|
.readTimeout(ApiConstants.API_READ_TIMEOUT, java.util.concurrent.TimeUnit.SECONDS)
|
||||||
|
.retryOnConnectionFailure(true)
|
||||||
|
.addInterceptor(logging);
|
||||||
|
addSSLTrustToOkHttp(builder);
|
||||||
|
|
||||||
|
OkHttpClient okHttpClient = builder.build();
|
||||||
|
OkHttp3Downloader okHttp3Downloader = new OkHttp3Downloader(okHttpClient);
|
||||||
|
|
||||||
|
Picasso picasso = new Picasso.Builder(this)
|
||||||
|
.downloader(okHttp3Downloader)
|
||||||
|
.build();
|
||||||
Picasso.setSingletonInstance(picasso);
|
Picasso.setSingletonInstance(picasso);
|
||||||
/*
|
|
||||||
// MEMORY CACHE
|
|
||||||
//default cache size is %15 of available memory
|
|
||||||
// LRU memory cache of 15% the available application RAM
|
|
||||||
//LruCache() takes byte parameter. Here is 4 megabyte
|
|
||||||
Picasso.Builder picassoBuilder = new Picasso.Builder(this).memoryCache(new LruCache(8 * 1024 * 1024));
|
|
||||||
Picasso.setSingletonInstance(picassoBuilder.build());
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initOneSignal(){
|
private void initOneSignal(){
|
||||||
@@ -56,4 +70,17 @@ public class App extends MultiDexApplication {
|
|||||||
OneSignal.setAppId(ApiConstants.ONESIGNAL_APP_ID);
|
OneSignal.setAppId(ApiConstants.ONESIGNAL_APP_ID);
|
||||||
OneSignal.unsubscribeWhenNotificationsAreDisabled(true);
|
OneSignal.unsubscribeWhenNotificationsAreDisabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addSSLTrustToOkHttp(OkHttpClient.Builder okHttpClientBuilder) {
|
||||||
|
try {
|
||||||
|
TrustManager[] trustAllCerts = new TrustManager[]{new SSLTrustManager()};
|
||||||
|
SSLContext sslContext = SSLContext.getInstance("SSL");
|
||||||
|
sslContext.init(null, trustAllCerts, new SecureRandom());
|
||||||
|
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
|
||||||
|
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||||
|
okHttpClientBuilder.sslSocketFactory(sslContext.getSocketFactory());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,8 +4,12 @@ import com.google.gson.Gson;
|
|||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.security.SecureRandom;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import javax.net.ssl.SSLContext;
|
||||||
|
import javax.net.ssl.TrustManager;
|
||||||
|
|
||||||
import ch.pizzalemon.android.BuildConfig;
|
import ch.pizzalemon.android.BuildConfig;
|
||||||
import ch.pizzalemon.android.activity.BaseActivity;
|
import ch.pizzalemon.android.activity.BaseActivity;
|
||||||
import ch.pizzalemon.android.helper.SessionHelper;
|
import ch.pizzalemon.android.helper.SessionHelper;
|
||||||
@@ -61,6 +65,8 @@ public class ApiService {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addSSLTrustToOkHttp(builder);
|
||||||
|
|
||||||
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); // set your desired log level
|
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); // set your desired log level
|
||||||
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||||
|
|
||||||
@@ -89,4 +95,17 @@ public class ApiService {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addSSLTrustToOkHttp(OkHttpClient.Builder okHttpClientBuilder) {
|
||||||
|
try {
|
||||||
|
TrustManager[] trustAllCerts = new TrustManager[]{new SSLTrustManager()};
|
||||||
|
SSLContext sslContext = SSLContext.getInstance("SSL");
|
||||||
|
sslContext.init(null, trustAllCerts, new SecureRandom());
|
||||||
|
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
|
||||||
|
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||||
|
okHttpClientBuilder.sslSocketFactory(sslContext.getSocketFactory());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package ch.pizzalemon.android.api;
|
||||||
|
|
||||||
|
import java.security.cert.CertificateException;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
|
||||||
|
// we got SSLHandshakeException for all requests for pinocchio, so we disabled ssl check for pinocciho pizza
|
||||||
|
public class SSLTrustManager implements X509TrustManager {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void checkClientTrusted(
|
||||||
|
X509Certificate[] chain,
|
||||||
|
String authType
|
||||||
|
) throws CertificateException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void checkServerTrusted(
|
||||||
|
X509Certificate[] chain,
|
||||||
|
String authType
|
||||||
|
) throws CertificateException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public X509Certificate[] getAcceptedIssuers() {
|
||||||
|
return new X509Certificate[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user