web-dev-qa-db-fra.com

Glide - javax.net.ssl.SSLHandshakeException: Java.security.cert.CertPathValidatorException: ancre de confiance pour le chemin de certification introuvable

J'ai migré le serveur de HTTP vers HTTPS J'ai utilisé un certificat auto-signé pour envoyer des requêtes réseau avec HttpUrlConnection et cela a fonctionné mais pour le chargement d'image cela ne fonctionne pas comme je l'ai fait utilisé Glide pour le chargement d'images.

javax.net.ssl.SSLHandshakeException: Java.security.cert.CertPathValidatorException: ancre de confiance pour le chemin de certification introuvable. lors du chargement d'images à partir de URL https via glide bibliothèque

Glide.with(mContext).load(currentItem.getImage_path().replace(" ", "%20"))
     .listener(new RequestListener<String, GlideDrawable>() {
        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            genericViewHolder.imageView_1.setImageResource(R.drawable.image_thumbnail);
            genericViewHolder.progressBar.setVisibility(View.GONE);
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            genericViewHolder.progressBar.setVisibility(View.GONE);
            return false;
        }
    }).into(genericViewHolder.imageView_1);

J'ai essayé d'utiliser le lien this et j'ai utilisé GlideModule mais cela ne semble pas fonctionner. Veuillez aider.

11
Lalit Sharma

Le problème concerne le certificat, suivez ce lien - https://stackoverflow.com/a/39032433/4741746

Cela contournera le certificat et vous permettra d'entrer dans le système

voir aussi ce lien - https://futurestud.io/tutorials/glide-module-example-accepting-self-signed-https-certificates

Créez votre classe GlideModule personnalisée, classe OkHttpUrlLoader et attachez-vous à Glide comme mentionné dans le lien ci-dessus

Vous devez mettre

<meta-data
        Android:name="io.futurestud.tutorials.glide.glidemodule.CustomImageSizeGlideModule"
        Android:value="GlideModule" />

Balise d'application interne de votre fichier AndroidMainifiest https://github.com/fs-opensource/Android-tutorials-glide/blob/master/app/src/main/AndroidManifest.xml

7
sushant gosavi

Pour Glide 4

@GlideModule
public class MyGlideModule extends AppGlideModule {

    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {

        //To Attach Self Signed Ssl Certificate
        /*OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .sslSocketFactory(sslSocketFactory, X509TrustManager)
                .build();*/

        //Unsafe Okhttp client
        OkHttpClient okHttpClient= UnsafeHttpsClient.getUnsafeOkHttpClient();

        registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(okHttpClient));
    }
}
4
Gowsik K C

Au-dessus des deux, répondez à droite, mais assurez-vous également en dessous de la dépendance Ajouter ou modifier l'intégration okhttp3: version 4.4.0

  implementation ('com.github.bumptech.glide:okhttp3-integration:4.4.0'){
        exclude group: 'glide-parent'
    }
0
Rajesh Nasit