MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb 3.x-Treiber Android-Kompatibilität

Es sieht für mich so aus, als wäre die ManagementFactory ein Ablenkungsmanöver, da der Treiber diese Ausnahme abfängt und stattdessen auf die Verwendung einer Zufallszahl zurückgreift.

Das eigentliche Problem scheint zu sein, dass sich der Treiber mit SCRAM-SHA-1 authentifizieren muss, dessen Implementierung die folgenden Klassen importiert:

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;

Ich vermute, dass diese nicht auf der Android-Plattform verfügbar sind, die keine vollständige Implementierung der Java-Laufzeitumgebung ist.

Eine Sache, die Sie versuchen könnten, wäre, gegen MongoDB 2.6 zu laufen, gegen das die Authentifizierungsimplementierung des Treibers nur auf java.security.MessageDigest.

beruht

Eine andere Sache, über die Sie nachdenken sollten, ist das Einfügen eines REST-Dienstes zwischen der mobilen App und MongoDB, der für das Proxying aller Interaktionen mit der Datenbank verantwortlich ist. Die REST-Anwendung kann in einer Umgebung ausgeführt werden, in der der MongoDB-Treiber voll funktionsfähig ist.