diff options
| -rw-r--r-- | java/src/c/com_entrouvert_lasso_LassoUser.c | 18 | ||||
| -rw-r--r-- | java/src/java/com/entrouvert/lasso/LassoUser.java | 2 | ||||
| -rw-r--r-- | java/tests/LoginTest.java | 11 | ||||
| -rw-r--r-- | python/lasso.py | 2 | ||||
| -rw-r--r-- | python/tests/login_tests.py | 7 |
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. |
