summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/src/c/com_entrouvert_lasso_LassoUser.c18
-rw-r--r--java/src/java/com/entrouvert/lasso/LassoUser.java2
-rw-r--r--java/tests/LoginTest.java11
-rw-r--r--python/lasso.py2
-rw-r--r--python/tests/login_tests.py7
5 files changed, 30 insertions, 10 deletions
diff --git a/java/src/c/com_entrouvert_lasso_LassoUser.c b/java/src/c/com_entrouvert_lasso_LassoUser.c
index feacf71c..8881b41e 100644
--- a/java/src/c/com_entrouvert_lasso_LassoUser.c
+++ b/java/src/c/com_entrouvert_lasso_LassoUser.c
@@ -59,3 +59,21 @@ JNIEXPORT jstring JNICALL Java_com_entrouvert_lasso_LassoUser_dump
return (*env)->NewStringUTF(env, result);
}
+JNIEXPORT jstring JNICALL Java_com_entrouvert_lasso_LassoUser_getAuthenticationMethod
+(JNIEnv * env, jobject this, jstring _remoteProviderId){
+ char *remoteProviderId = NULL;
+ char *result;
+ LassoUser* user;
+
+ if (_remoteProviderId)
+ remoteProviderId = (char*)(*env)->GetStringUTFChars(env, _remoteProviderId, NULL);
+
+ user = getCObject(env, this);
+ result = lasso_user_get_authentication_method(user, remoteProviderId);
+
+ if (_remoteProviderId)
+ (*env)->ReleaseStringUTFChars(env, _remoteProviderId, remoteProviderId);
+
+ return (*env)->NewStringUTF(env, result);
+}
+
diff --git a/java/src/java/com/entrouvert/lasso/LassoUser.java b/java/src/java/com/entrouvert/lasso/LassoUser.java
index 2e2256dc..b31345ed 100644
--- a/java/src/java/com/entrouvert/lasso/LassoUser.java
+++ b/java/src/java/com/entrouvert/lasso/LassoUser.java
@@ -40,5 +40,7 @@ public class LassoUser extends LassoObject { // LassoUser
native public String dump();
+ native public String getAuthenticationMethod(String remoteProviderId);
+
} // LassoUser
diff --git a/java/tests/LoginTest.java b/java/tests/LoginTest.java
index c15c59c1..c97a04d3 100644
--- a/java/tests/LoginTest.java
+++ b/java/tests/LoginTest.java
@@ -149,13 +149,12 @@ public class LoginTest extends TestCase {
assertEquals(nameIdentifier, spLoginContext.getNameIdentifier());
// The user doesn't have any federation yet.
assertEquals(0, spLoginContext.createUser(null));
- spUserContextDump = spLoginContext.getUser().dump();
+ spUserContext = spLoginContext.getUser();
+ assertNotNull(spUserContext);
+ spUserContextDump = spUserContext.dump();
assertNotNull(spUserContextDump);
- response = (LassoResponse) spLoginContext.getResponse();
-// FIXME: I believe the instruction below is not clean enough for a binding.
-// authenticationMethod = response.get_child(
-// "AuthenticationStatement").get_attr_value("AuthenticationMethod")
-// assertEquals(lasso.samlAuthenticationMethodPassword, authenticationMethod)
+ authenticationMethod = spUserContext.getAuthenticationMethod(null);
+ assertEquals(Lasso.samlAuthenticationMethodPassword, authenticationMethod);
// Service provider logout.
spContextDump = generateServiceProviderContextDump();
diff --git a/python/lasso.py b/python/lasso.py
index 135e3a0a..df9e57ce 100644
--- a/python/lasso.py
+++ b/python/lasso.py
@@ -874,7 +874,7 @@ class User:
def get_assertion(self, remote_providerID):
return Node(lassomod.user_get_assertion(self, remote_providerID))
- def get_authentication_method(self, remote_providerID):
+ def get_authentication_method(self, remote_providerID = None):
return lassomod.user_get_authentication_method(self, remote_providerID)
def get_next_assertion_remote_providerID(self):
diff --git a/python/tests/login_tests.py b/python/tests/login_tests.py
index b97652f8..061fede5 100644
--- a/python/tests/login_tests.py
+++ b/python/tests/login_tests.py
@@ -139,10 +139,11 @@ class LoginTestCase(unittest.TestCase):
self.failUnlessEqual(spLoginContext.nameIdentifier, nameIdentifier)
# The user doesn't have any federation yet.
self.failUnlessEqual(spLoginContext.create_user(None), 0)
- spUserContextDump = spLoginContext.user.dump()
+ spUserContext = spLoginContext.user
+ self.failUnless(spUserContext)
+ spUserContextDump = spUserContext.dump()
self.failUnless(spUserContextDump)
- authenticationMethod = spLoginContext.response.get_child(
- "AuthenticationStatement").get_attr_value("AuthenticationMethod")
+ authenticationMethod = spUserContext.get_authentication_method()
self.failUnlessEqual(authenticationMethod, lasso.samlAuthenticationMethodPassword)
# Service provider logout.