MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Compatibilité Android du pilote mongodb 3.x

Il me semble que ManagementFactory est un faux-fuyant, car le pilote attrape cette exception et revient à utiliser un nombre aléatoire à la place.

Le vrai problème semble être que le pilote doit s'authentifier auprès de SCRAM-SHA-1, dont l'implémentation importe les classes suivantes :

import javax.crypto.Mac;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
import javax.security.sasl.SaslClient;
import javax.security.sasl.SaslException;

Je soupçonne qu'ils ne sont pas disponibles sur la plate-forme Android, qui n'est pas une implémentation complète de l'environnement d'exécution Java.

Une chose que vous pourriez essayer serait d'exécuter avec MongoDB 2.6, par rapport auquel l'implémentation de l'authentification du pilote ne repose que sur java.security.MessageDigest.

Une autre chose à laquelle il faut penser est de mettre un service REST entre l'application mobile et MongoDB qui est responsable du proxy de toutes les interactions avec la base de données. L'application REST peut être exécutée dans un environnement où le pilote MongoDB sera entièrement fonctionnel.