Nearly completed Python & Java first non-regression test for login.
But Java test doesn't work: java.lang.UnsatisfiedLinkError: libjlasso: not found Adding its directory to LD_LIBRARY_PATH may help. at LoginTest.main (LoginTest.java:165) And I don't understand why. Please professor, help me!
This commit is contained in:
parent
55aeba092c
commit
9fafbcd580
|
@ -42,7 +42,7 @@ JNIEXPORT jint JNICALL Java_com_entrouvert_lasso_Lasso_getRequestTypeFromSoapMsg
|
|||
char *value;
|
||||
|
||||
value = (char*)(*env)->GetStringUTFChars(env, _value, NULL);
|
||||
result = lasso_get_request_type_from_soap_msg(value);
|
||||
result = lasso_profile_context_get_request_type_from_soap_msg(value);
|
||||
(*env)->ReleaseStringUTFChars(env, _value, value);
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -133,7 +133,24 @@ JNIEXPORT jint JNICALL Java_com_entrouvert_lasso_LassoLogin_buildRequestMsg
|
|||
login = getCObject(env, this);
|
||||
result = lasso_login_build_request_msg(login);
|
||||
|
||||
return result;}
|
||||
return result;
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL Java_com_entrouvert_lasso_LassoLogin_createUser
|
||||
(JNIEnv * env, jobject this, jstring _userDump){
|
||||
LassoLogin* login;
|
||||
int result;
|
||||
char *userDump;
|
||||
|
||||
userDump = (char*)(*env)->GetStringUTFChars(env, _userDump, NULL);
|
||||
|
||||
login = getCObject(env, this);
|
||||
result = lasso_login_init_create_user(login, userDump);
|
||||
|
||||
(*env)->ReleaseStringUTFChars(env, _userDump, userDump);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL Java_com_entrouvert_lasso_LassoLogin_dump
|
||||
(JNIEnv * env, jobject this){
|
||||
|
@ -155,8 +172,7 @@ JNIEXPORT jint JNICALL Java_com_entrouvert_lasso_LassoLogin_initAuthnRequest
|
|||
providerID = (char*)(*env)->GetStringUTFChars(env, _providerID, NULL);
|
||||
|
||||
login = getCObject(env, this);
|
||||
result = lasso_login_init_authn_request(login,
|
||||
providerID);
|
||||
result = lasso_login_init_authn_request(login, providerID);
|
||||
|
||||
(*env)->ReleaseStringUTFChars(env, _providerID, providerID);
|
||||
|
||||
|
|
|
@ -57,6 +57,8 @@ public class LassoLogin extends LassoProfileContext { // LassoLogin
|
|||
|
||||
native public int buildRequestMsg();
|
||||
|
||||
native public int createUser(String userDump);
|
||||
|
||||
native public String dump();
|
||||
|
||||
native public int initAuthnRequest(String providerId);
|
||||
|
|
|
@ -62,4 +62,3 @@ public abstract class LassoProfileContext extends LassoObject { // LassoProfileC
|
|||
native protected void initResponseField();
|
||||
|
||||
} // LassoProfileContext
|
||||
|
||||
|
|
|
@ -78,13 +78,14 @@ public class LoginTest extends TestCase {
|
|||
|
||||
public void test02_serviceProviderLogin() {
|
||||
boolean userAuthenticated;
|
||||
int method;
|
||||
int method, requestType;
|
||||
LassoAuthnRequest authnRequest;
|
||||
LassoLogin idpLoginContext, spLoginContext;
|
||||
LassoResponse response;
|
||||
LassoServer idpContext, spContext;
|
||||
String artifact, authenticationMethod, authnRequestQuery, authnRequestUrl, idpContextDump,
|
||||
nameIdentifier, relayState, responseMsg, responseQuery, responseUrl, spContextDump,
|
||||
soapEndpoint, soapRequestMsg;
|
||||
idpUserContextDump, nameIdentifier, relayState, responseQuery, responseUrl,
|
||||
soapEndpoint, soapResponseMsg, soapRequestMsg, spContextDump, spUserContextDump;
|
||||
|
||||
// Service provider login using HTTP redirect.
|
||||
spContextDump = generateServiceProviderContextDump();
|
||||
|
@ -118,9 +119,11 @@ public class LoginTest extends TestCase {
|
|||
assertEquals(idpLoginContext.buildArtifactMsg(
|
||||
userAuthenticated, authenticationMethod, "FIXME: reauthenticateOnOrAfter",
|
||||
Lasso.httpMethodRedirect), 0);
|
||||
idpUserContextDump = spLoginContext.getUser().dump();
|
||||
assertNotNull(idpUserContextDump);
|
||||
responseUrl = idpLoginContext.getMsgUrl();
|
||||
responseQuery = responseUrl.substring(responseUrl.indexOf("?") + 1);
|
||||
responseMsg = idpLoginContext.getResponseDump();
|
||||
soapResponseMsg = idpLoginContext.getResponseDump();
|
||||
artifact = idpLoginContext.getAssertionArtifact();
|
||||
nameIdentifier = idpLoginContext.getNameIdentifier();
|
||||
method = Lasso.httpMethodRedirect;
|
||||
|
@ -134,6 +137,24 @@ public class LoginTest extends TestCase {
|
|||
assertEquals(spLoginContext.buildRequestMsg(), 0);
|
||||
soapEndpoint = spLoginContext.getMsgUrl();
|
||||
soapRequestMsg = spLoginContext.getMsgBody();
|
||||
|
||||
// Identity provider SOAP endpoint.
|
||||
idpContextDump = generateIdentityProviderContextDump();
|
||||
assertNotNull(idpContextDump);
|
||||
requestType = Lasso.getRequestTypeFromSoapMsg(soapRequestMsg);
|
||||
assertEquals(requestType, Lasso.requestTypeLogin);
|
||||
|
||||
// Service provider assertion consumer (step 2).
|
||||
assertEquals(spLoginContext.processResponseMsg(soapResponseMsg), 0);
|
||||
assertEquals(spLoginContext.getNameIdentifier(), nameIdentifier);
|
||||
// The user doesn't have any federation yet.
|
||||
assertEquals(spLoginContext.createUser(null), 0);
|
||||
spUserContextDump = spLoginContext.getUser().dump();
|
||||
assertNotNull(spUserContextDump);
|
||||
response = (LassoResponse) spLoginContext.getResponse();
|
||||
// authenticationMethod = response.get_child(
|
||||
// "AuthenticationStatement").get_attr_value("AuthenticationMethod")
|
||||
// self.failUnlessEqual(authenticationMethod, lasso.samlAuthenticationMethodPassword)
|
||||
}
|
||||
|
||||
public static Test suite() {
|
||||
|
|
|
@ -48,13 +48,14 @@ typedef struct _LassoProfileContext LassoProfileContext;
|
|||
typedef struct _LassoProfileContextClass LassoProfileContextClass;
|
||||
typedef struct _LassoProfileContextPrivate LassoProfileContextPrivate;
|
||||
|
||||
/* Request types (used by SOAP endpoint) */
|
||||
typedef enum {
|
||||
lassoRequestTypeLogin = 1,
|
||||
lassoRequestTypeLogout,
|
||||
lassoRequestTypeFederationTermination,
|
||||
lassoRequestTypeRegisterNameIdentifier,
|
||||
lassoRequestTypeNameIdentifierMapping,
|
||||
}lassoRequestTypes;
|
||||
} lassoRequestTypes;
|
||||
|
||||
typedef enum {
|
||||
lassoHttpMethodGet = 1,
|
||||
|
|
|
@ -32,7 +32,7 @@ print 'request url : ', msg_url
|
|||
print 'request body : ', msg_body
|
||||
|
||||
request_type = lasso.get_request_type_from_soap_msg(msg_body)
|
||||
if request_type==lasso.RequestTypeLogout:
|
||||
if request_type == lasso.requestTypeLogout:
|
||||
print "it's a LogoutRequest !"
|
||||
|
||||
|
||||
|
|
|
@ -47,12 +47,12 @@ def shutdown():
|
|||
"""
|
||||
return lassomod.shutdown()
|
||||
|
||||
# request types :
|
||||
RequestTypeLogin = 1
|
||||
RequestTypeLogout = 2
|
||||
RequestTypeFederationTermination = 3
|
||||
RequestRegisterNameIdentifier = 4
|
||||
RequestTypeNameIdentifierMapping = 5
|
||||
# Request types
|
||||
requestTypeLogin = 1
|
||||
requestTypeLogout = 2
|
||||
requestTypeFederationTermination = 3
|
||||
requestTypeRegisterNameIdentifier = 4
|
||||
requestTypeNameIdentifierMapping = 5
|
||||
|
||||
def get_request_type_from_soap_msg(soap_buffer):
|
||||
return lassomod.profile_context_get_request_type_from_soap_msg(soap_buffer);
|
||||
|
|
|
@ -111,9 +111,11 @@ class LoginTestCase(unittest.TestCase):
|
|||
self.failUnlessEqual(idpLoginContext.build_artifact_msg(
|
||||
userAuthenticated, authenticationMethod, "FIXME: reauthenticateOnOrAfter",
|
||||
lasso.httpMethodRedirect), 0)
|
||||
idpUserContextDump = idpLoginContext.user.dump()
|
||||
self.failUnless(idpUserContextDump)
|
||||
responseUrl = idpLoginContext.msg_url
|
||||
responseQuery = responseUrl.split("?", 1)[1]
|
||||
responseMsg = idpLoginContext.response_dump
|
||||
soapResponseMsg = idpLoginContext.response_dump
|
||||
artifact = idpLoginContext.assertionArtifact
|
||||
nameIdentifier = idpLoginContext.nameIdentifier
|
||||
method = lasso.httpMethodRedirect
|
||||
|
@ -128,13 +130,22 @@ class LoginTestCase(unittest.TestCase):
|
|||
soapEndpoint = spLoginContext.msg_url
|
||||
soapRequestMsg = spLoginContext.msg_body
|
||||
|
||||
## soapResponseMsg = self.callSoap(loginContext.msg_url, loginContext.msg_body)
|
||||
## logs.debug("soapResponseMsg = %s" % soapResponseMsg)
|
||||
## errorCode = loginContext.process_response_msg(soapResponseMsg)
|
||||
## if errorCode:
|
||||
## raise Exception("Lasso login error %s" % errorCode)
|
||||
## nameIdentifier = loginContext.nameIdentifier
|
||||
# Identity provider SOAP endpoint.
|
||||
idpContextDump = self.generateIdentityProviderContextDump()
|
||||
self.failUnless(idpContextDump)
|
||||
requestType = lasso.get_request_type_from_soap_msg(soapRequestMsg)
|
||||
self.failUnlessEqual(requestType, lasso.requestTypeLogin)
|
||||
|
||||
# Service provider assertion consumer (step 2).
|
||||
self.failUnlessEqual(spLoginContext.process_response_msg(soapResponseMsg), 0)
|
||||
self.failUnlessEqual(spLoginContext.nameIdentifier, nameIdentifier)
|
||||
# The user doesn't have any federation yet.
|
||||
self.failUnlessEqual(spLoginContext.create_user(None), 0)
|
||||
spUserContextDump = spLoginContext.user.dump()
|
||||
self.failUnless(spUserContextDump)
|
||||
authenticationMethod = spLoginContext.response.get_child(
|
||||
"AuthenticationStatement").get_attr_value("AuthenticationMethod")
|
||||
self.failUnlessEqual(authenticationMethod, lasso.samlAuthenticationMethodPassword)
|
||||
|
||||
suite1 = unittest.makeSuite(LoginTestCase, 'test')
|
||||
|
||||
|
|
Loading…
Reference in New Issue