Integrate MaaS support

Integrate list users per backend and list backends


Project: 
http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-sdk-android/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-sdk-android/commit/f914e067
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-sdk-android/tree/f914e067
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-sdk-android/diff/f914e067

Branch: refs/heads/master
Commit: f914e067f27aea0166416981d29e520973b69973
Parents: 8dc0481
Author: Vassil Angelov <vassil.ange...@miracl.com>
Authored: Fri Apr 1 17:24:02 2016 +0300
Committer: Vladislav Mitov <vladislav.mi...@gmail.com>
Committed: Mon May 9 10:27:21 2016 +0300

----------------------------------------------------------------------
 mpin-sdk-core                                   |  2 +-
 .../main/java/com/miracl/mpinsdk/MPinSDK.java   | 30 ++++++-
 mpinsdk/src/main/jni/JNIMPinSDK.cpp             | 90 +++++++++++++++++---
 3 files changed, 106 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-sdk-android/blob/f914e067/mpin-sdk-core
----------------------------------------------------------------------
diff --git a/mpin-sdk-core b/mpin-sdk-core
index 441caba..58448b9 160000
--- a/mpin-sdk-core
+++ b/mpin-sdk-core
@@ -1 +1 @@
-Subproject commit 441cabaa96a916db82ae9c5a092336117b703196
+Subproject commit 58448b9b6a1a05e8f5f662bd6c34a0192dca43c8

http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-sdk-android/blob/f914e067/mpinsdk/src/main/java/com/miracl/mpinsdk/MPinSDK.java
----------------------------------------------------------------------
diff --git a/mpinsdk/src/main/java/com/miracl/mpinsdk/MPinSDK.java 
b/mpinsdk/src/main/java/com/miracl/mpinsdk/MPinSDK.java
index 15e8eb3..3077eb5 100644
--- a/mpinsdk/src/main/java/com/miracl/mpinsdk/MPinSDK.java
+++ b/mpinsdk/src/main/java/com/miracl/mpinsdk/MPinSDK.java
@@ -117,6 +117,10 @@ public class MPinSDK implements Closeable {
         return nStartAuthentication(mPtr, user);
     }
 
+    public Status StartAuthentication(User user, String accessCode) {
+        return nStartAuthenticationAccessCode(mPtr, user, accessCode);
+    }
+
     public Status CheckAccessNumber(String accessNumber) {
         return nCheckAccessNumber(mPtr, accessNumber);
     }
@@ -137,12 +141,24 @@ public class MPinSDK implements Closeable {
         return nFinishAuthenticationAN(mPtr, user, pin, accessNumber);
     }
 
+    public String GetPrerollUserId(String accessCode) {
+        return nGetPrerollUserId(mPtr, accessCode);
+    }
+
     public void DeleteUser(User user) {
         nDeleteUser(mPtr, user);
     }
 
-    public void ListUsers(List<User> users) {
-        nListUsers(mPtr, users);
+    public Status ListUsers(List<User> users) {
+        return nListUsers(mPtr, users);
+    }
+
+    public Status ListUsers(List<User> users, String backend) {
+        return nListUsersForBackend(mPtr, users, backend);
+    }
+
+    public Status ListBackends(List<String> backends) {
+        return nListBackends(mPtr, backends);
     }
 
     public String GetVersion() {
@@ -187,6 +203,8 @@ public class MPinSDK implements Closeable {
 
     private native Status nStartAuthentication(long ptr, User user);
 
+    private native Status nStartAuthenticationAccessCode(long ptr, User user, 
String accessCode);
+
     private native Status nCheckAccessNumber(long ptr, String accessNumber);
 
     private native Status nFinishAuthentication(long ptr, User user, String 
pin);
@@ -197,9 +215,15 @@ public class MPinSDK implements Closeable {
 
     private native Status nFinishAuthenticationAN(long ptr, User user, String 
pin, String accessNumber);
 
+    private native String nGetPrerollUserId(long ptr, String key);
+
     private native void nDeleteUser(long ptr, User user);
 
-    private native void nListUsers(long ptr, List<User> users);
+    private native Status nListUsers(long ptr, List<User> users);
+
+    private native Status nListUsersForBackend(long ptr, List<User> users, 
String backend);
+
+    private native Status nListBackends(long ptr, List<String> backends);
 
     private native String nGetVersion(long ptr);
 

http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-sdk-android/blob/f914e067/mpinsdk/src/main/jni/JNIMPinSDK.cpp
----------------------------------------------------------------------
diff --git a/mpinsdk/src/main/jni/JNIMPinSDK.cpp 
b/mpinsdk/src/main/jni/JNIMPinSDK.cpp
index 7537d8d..4f684b3 100644
--- a/mpinsdk/src/main/jni/JNIMPinSDK.cpp
+++ b/mpinsdk/src/main/jni/JNIMPinSDK.cpp
@@ -118,6 +118,12 @@ static jobject nStartAuthentication(JNIEnv* env, jobject 
jobj, jlong jptr, jobje
        return MakeJavaStatus(env, sdk->StartAuthentication(JavaToMPinUser(env, 
juser)));
 }
 
+static jobject nStartAuthenticationAccessCode(JNIEnv* env, jobject jobj, jlong 
jptr, jobject juser, jstring accessCode)
+{
+    MPinSDK* sdk = (MPinSDK*) jptr;
+    return MakeJavaStatus(env, sdk->StartAuthentication(JavaToMPinUser(env, 
juser),JavaToStdString(env,accessCode)));
+}
+
 static jobject nCheckAccessNumber(JNIEnv* env, jobject jobj, jlong jptr, 
jstring jaccessNumber)
 {
        MPinSDK* sdk = (MPinSDK*) jptr;
@@ -177,29 +183,85 @@ static jobject nFinishAuthenticationAN(JNIEnv* env, 
jobject jobj, jlong jptr, jo
        return MakeJavaStatus(env, 
sdk->FinishAuthenticationAN(JavaToMPinUser(env, juser), JavaToStdString(env, 
jpin), JavaToStdString(env, jaccessNumber)));
 }
 
+static jstring nGetPrerollUserId(JNIEnv* env, jobject jobj, jlong jptr, 
jstring jaccessCode)
+{
+    MPinSDK* sdk = (MPinSDK*) jptr;
+    MPinSDK::String result = sdk->GetPrerollUserId(JavaToStdString(env, 
jaccessCode));
+    return env->NewStringUTF(result.c_str());
+}
+
 static void nDeleteUser(JNIEnv* env, jobject jobj, jlong jptr, jobject juser)
 {
        MPinSDK* sdk = (MPinSDK*) jptr;
        sdk->DeleteUser(JavaToMPinUser(env, juser));
 }
 
-static void nListUsers(JNIEnv* env, jobject jobj, jlong jptr, jobject 
jusersList)
+static jobject nListUsers(JNIEnv* env, jobject jobj, jlong jptr, jobject 
jusersList)
 {
        MPinSDK* sdk = (MPinSDK*) jptr;
        std::vector<MPinSDK::UserPtr> users;
-       sdk->ListUsers(users);
+       MPinSDK::Status status = sdk->ListUsers(users);
 
-       jclass clsList = env->FindClass("java/util/List");
-       jmethodID midAdd = env->GetMethodID(clsList, "add", 
"(Ljava/lang/Object;)Z");
+    if(status == MPinSDK::Status::OK)
+    {
+        jclass clsList = env->FindClass("java/util/List");
+        jmethodID midAdd = env->GetMethodID(clsList, "add", 
"(Ljava/lang/Object;)Z");
 
-       jclass clsUser = env->FindClass("com/miracl/mpinsdk/model/User");
-       jmethodID ctorUser = env->GetMethodID(clsUser, "<init>", "(J)V");
+        jclass clsUser = env->FindClass("com/miracl/mpinsdk/model/User");
+        jmethodID ctorUser = env->GetMethodID(clsUser, "<init>", "(J)V");
 
-       for (std::vector<MPinSDK::UserPtr>::iterator i = users.begin(); i != 
users.end(); ++i) {
-               MPinSDK::UserPtr user = *i;
-               jobject juser = env->NewObject(clsUser, ctorUser, (jlong) new 
MPinSDK::UserPtr(user));
-               env->CallBooleanMethod(jusersList, midAdd, juser);
-       }
+        for (std::vector<MPinSDK::UserPtr>::iterator i = users.begin(); i != 
users.end(); ++i) {
+            MPinSDK::UserPtr user = *i;
+            jobject juser = env->NewObject(clsUser, ctorUser, (jlong) new 
MPinSDK::UserPtr(user));
+            env->CallBooleanMethod(jusersList, midAdd, juser);
+        }
+    }
+
+    return MakeJavaStatus(env,status);
+}
+
+static jobject nListUsersForBackend(JNIEnv* env, jobject jobj, jlong jptr, 
jobject jusersList, jstring jbackend)
+{
+    MPinSDK* sdk = (MPinSDK*) jptr;
+    std::vector<MPinSDK::UserPtr> users;
+    MPinSDK::Status status = 
sdk->ListUsers(users,JavaToStdString(env,jbackend));
+
+    if(status == MPinSDK::Status::OK)
+    {
+        jclass clsList = env->FindClass("java/util/List");
+        jmethodID midAdd = env->GetMethodID(clsList, "add", 
"(Ljava/lang/Object;)Z");
+
+        jclass clsUser = env->FindClass("com/miracl/mpinsdk/model/User");
+        jmethodID ctorUser = env->GetMethodID(clsUser, "<init>", "(J)V");
+
+        for (std::vector<MPinSDK::UserPtr>::iterator i = users.begin(); i != 
users.end(); ++i) {
+            MPinSDK::UserPtr user = *i;
+            jobject juser = env->NewObject(clsUser, ctorUser, (jlong) new 
MPinSDK::UserPtr(user));
+            env->CallBooleanMethod(jusersList, midAdd, juser);
+        }
+    }
+
+    return MakeJavaStatus(env,status);
+}
+
+static jobject nListBackends(JNIEnv* env, jobject jobj, jlong jptr,jobject 
jBackendsList)
+{
+    MPinSDK* sdk = (MPinSDK*) jptr;
+    std::vector<MPinSDK::String> backends;
+    MPinSDK::Status status = sdk->ListBackends(backends);
+
+    if(status == MPinSDK::Status::OK)
+    {
+        jclass clsList = env->FindClass("java/util/List");
+        jmethodID midAdd = env->GetMethodID(clsList, "add", 
"(Ljava/lang/Object;)Z");
+
+        for (std::vector<MPinSDK::String>::iterator i = backends.begin(); i != 
backends.end(); ++i) {
+            MPinSDK::String backend = *i;
+            env->CallBooleanMethod(jBackendsList, midAdd, 
env->NewStringUTF(backend.c_str()));
+        }
+    }
+
+    return MakeJavaStatus(env,status);
 }
 
 static jstring nGetVersion(JNIEnv* env, jobject jobj, jlong jptr)
@@ -243,13 +305,17 @@ static JNINativeMethod g_methodsMPinSDK[] =
        NATIVE_METHOD(nConfirmRegistration, 
"(JLcom/miracl/mpinsdk/model/User;Ljava/lang/String;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nFinishRegistration, 
"(JLcom/miracl/mpinsdk/model/User;Ljava/lang/String;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nStartAuthentication, 
"(JLcom/miracl/mpinsdk/model/User;)Lcom/miracl/mpinsdk/model/Status;"),
+    NATIVE_METHOD(nStartAuthenticationAccessCode, 
"(JLcom/miracl/mpinsdk/model/User;Ljava/lang/String;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nCheckAccessNumber, 
"(JLjava/lang/String;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nFinishAuthentication, 
"(JLcom/miracl/mpinsdk/model/User;Ljava/lang/String;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nFinishAuthenticationResultData, 
"(JLcom/miracl/mpinsdk/model/User;Ljava/lang/String;Ljava/lang/StringBuilder;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nFinishAuthenticationOTP, 
"(JLcom/miracl/mpinsdk/model/User;Ljava/lang/String;Lcom/miracl/mpinsdk/model/OTP;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nFinishAuthenticationAN, 
"(JLcom/miracl/mpinsdk/model/User;Ljava/lang/String;Ljava/lang/String;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nDeleteUser, "(JLcom/miracl/mpinsdk/model/User;)V"),
-       NATIVE_METHOD(nListUsers, "(JLjava/util/List;)V"),
+    NATIVE_METHOD(nGetPrerollUserId, 
"(JLjava/lang/String;)Ljava/lang/String;"),
+       NATIVE_METHOD(nListUsers, 
"(JLjava/util/List;)Lcom/miracl/mpinsdk/model/Status;"),
+    NATIVE_METHOD(nListUsersForBackend, 
"(JLjava/util/List;Ljava/lang/String;)Lcom/miracl/mpinsdk/model/Status;"),
+    NATIVE_METHOD(nListBackends, 
"(JLjava/util/List;)Lcom/miracl/mpinsdk/model/Status;"),
        NATIVE_METHOD(nGetVersion, "(J)Ljava/lang/String;"),
        NATIVE_METHOD(nCanLogout, "(JLcom/miracl/mpinsdk/model/User;)Z"),
        NATIVE_METHOD(nLogout, "(JLcom/miracl/mpinsdk/model/User;)Z"),

Reply via email to