Replaced old debug() calls by the 2 new functions debug() and message()

This commit is contained in:
Valery Febvre 2004-07-24 00:17:57 +00:00
parent 2dc5c3a1c9
commit 520345214f
16 changed files with 223 additions and 217 deletions

View File

@ -25,6 +25,7 @@
#include <string.h>
#include <xmlsec/base64.h>
#include <lasso/xml/debug.h>
#include <lasso/protocols/authn_response.h>
static void
@ -62,7 +63,7 @@ lasso_authn_response_get_status(LassoAuthnResponse *response) {
value = lasso_node_get_attr_value(status_code, "Value", &err);
lasso_node_destroy(status_code);
if (err != NULL) {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
g_error_free(err);
return (NULL);
}
@ -71,7 +72,7 @@ lasso_authn_response_get_status(LassoAuthnResponse *response) {
}
}
else {
debug(ERROR, "No StatusCode element found in AuthnResponse.\n");
message(G_LOG_LEVEL_ERROR, "No StatusCode element found in AuthnResponse.\n");
return (NULL);
}
}

View File

@ -41,7 +41,7 @@ lasso_logout_response_get_status_code_value(LassoLogoutResponse *response)
value = lasso_node_get_attr_value(status_code, "Value", &err);
lasso_node_destroy(status_code);
if (err != NULL) {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
g_error_free(err);
return (NULL);
}
@ -50,7 +50,7 @@ lasso_logout_response_get_status_code_value(LassoLogoutResponse *response)
}
}
else {
debug(ERROR, "No StatusCode element found in Response.\n");
message(G_LOG_LEVEL_ERROR, "No StatusCode element found in Response.\n");
return (NULL);
}
}
@ -234,7 +234,7 @@ lasso_logout_response_new_from_request_export(gchar *buffer,
request = lasso_logout_request_new_from_export(buffer, export_type);
break;
default:
debug(ERROR, "Unkown export type\n");
message(G_LOG_LEVEL_ERROR, "Unkown export type\n");
return(NULL);
}
@ -257,13 +257,13 @@ lasso_logout_response_new_from_soap(gchar *buffer)
envelope = lasso_node_new_from_dump(buffer);
if(envelope==NULL){
debug(ERROR, "Error while parsing the soap msg\n");
message(G_LOG_LEVEL_ERROR, "Error while parsing the soap msg\n");
return(NULL);
}
lassoNode_response = lasso_node_get_child(envelope, "LogoutResponse", NULL);
if(lassoNode_response==NULL){
debug(ERROR, "LogoutResponse node not found\n");
message(G_LOG_LEVEL_ERROR, "LogoutResponse node not found\n");
return(NULL);
}
class = LASSO_NODE_GET_CLASS(lassoNode_response);
@ -293,7 +293,7 @@ lasso_logout_response_new_from_export(gchar *buffer,
response = lasso_logout_response_new_from_soap(buffer);
break;
default:
debug(ERROR, "Unknown export type\n");
message(G_LOG_LEVEL_ERROR, "Unknown export type\n");
return(NULL);
}

View File

@ -42,14 +42,14 @@ lasso_federation_termination_build_notification_msg(LassoFederationTermination *
provider = lasso_server_get_provider(profileContext->server, profileContext->remote_providerID);
if(provider==NULL){
debug(ERROR, "Provider %s not found\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Provider %s not found\n", profileContext->remote_providerID);
return(-2);
}
/* get the prototocol profile of the federation termination notification */
protocolProfile = lasso_provider_get_federationTerminationNotificationProtocolProfile(provider);
if(protocolProfile==NULL){
debug(ERROR, "Federation termination notification protocol profile not found\n");
message(G_LOG_LEVEL_ERROR, "Federation termination notification protocol profile not found\n");
return(-3);
}
@ -57,7 +57,7 @@ lasso_federation_termination_build_notification_msg(LassoFederationTermination *
profileContext->request_type = lassoHttpMethodSoap;
profileContext->msg_url = lasso_provider_get_federationTerminationServiceURL(provider);
if(profileContext->msg_url==NULL){
debug(ERROR, "Federation Termination Notification url not found\n");
message(G_LOG_LEVEL_ERROR, "Federation Termination Notification url not found\n");
return(-4);
}
profileContext->msg_body = lasso_node_export_to_soap(profileContext->request);
@ -70,7 +70,7 @@ lasso_federation_termination_build_notification_msg(LassoFederationTermination *
profileContext->msg_body = NULL;
}
else{
debug(ERROR, "Unknown protocol profile\n");
message(G_LOG_LEVEL_ERROR, "Unknown protocol profile\n");
return(-5);
}
@ -107,24 +107,24 @@ lasso_federation_termination_init_notification(LassoFederationTermination *defed
profileContext = LASSO_PROFILE_CONTEXT(defederation);
if(remote_providerID==NULL){
debug(INFO, "No remote provider id, get the remote provider id of the first identity\n");
if (remote_providerID == NULL) {
message(G_LOG_LEVEL_INFO, "No remote provider id, get the remote provider id of the first identity\n");
profileContext->remote_providerID = lasso_user_get_next_identity_remote_providerID(profileContext->user);
}
else{
debug(INFO, "A remote provider id for defederation notification : %s\n", remote_providerID);
else {
message(G_LOG_LEVEL_INFO, "A remote provider id for defederation notification : %s\n", remote_providerID);
profileContext->remote_providerID = g_strdup(remote_providerID);
}
if(profileContext->remote_providerID==NULL){
debug(ERROR, "No provider id for init notification\n");
if (profileContext->remote_providerID == NULL) {
message(G_LOG_LEVEL_ERROR, "No provider Id for init notification\n");
return(-2);
}
/* get identity */
identity = lasso_user_get_identity(profileContext->user, profileContext->remote_providerID);
if(identity==NULL){
debug(ERROR, "Identity not found for %s\n", profileContext->remote_providerID);
if (identity == NULL) {
message(G_LOG_LEVEL_ERROR, "Identity not found for %s\n", profileContext->remote_providerID);
return(-2);
}
@ -142,11 +142,11 @@ lasso_federation_termination_init_notification(LassoFederationTermination *defed
nameIdentifier = LASSO_NODE(lasso_identity_get_local_nameIdentifier(identity));
break;
default:
debug(ERROR, "Unknown provider type\n");
message(G_LOG_LEVEL_ERROR, "Unknown provider type\n");
}
if(!nameIdentifier){
debug(ERROR, "Name identifier not found for %s\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Name identifier not found for %s\n", profileContext->remote_providerID);
return(-3);
}
@ -159,7 +159,7 @@ lasso_federation_termination_init_notification(LassoFederationTermination *defed
nameQualifier,
format);
if(profileContext->request==NULL){
debug(ERROR, "Error while creating the notification\n");
message(G_LOG_LEVEL_ERROR, "Error while creating the notification\n");
return(-6);
}
@ -181,22 +181,22 @@ lasso_federation_termination_process_notification_msg(LassoFederationTermination
switch(request_method){
case lassoHttpMethodSoap:
debug(DEBUG, "Process a federation termination notification soap msg\n");
message(G_LOG_LEVEL_DEBUG, "Process a federation termination notification soap msg\n");
profileContext->request = lasso_federation_termination_notification_new_from_export(request_msg, lassoNodeExportTypeSoap);
break;
case lassoHttpMethodRedirect:
debug(DEBUG, "Process a federation termination notification query msg\n");
message(G_LOG_LEVEL_DEBUG, "Process a federation termination notification query msg\n");
profileContext->request = lasso_federation_termination_notification_new_from_export(request_msg, lassoNodeExportTypeQuery);
break;
case lassoHttpMethodGet:
debug(WARNING, "Implement the get federation termination notification method\n");
message(G_LOG_LEVEL_WARNING, "Implement the get federation termination notification method\n");
break;
default:
debug(ERROR, "Unknown request method (%d)\n", request_method);
message(G_LOG_LEVEL_ERROR, "Unknown request method (%d)\n", request_method);
return(-1);
}
if(profileContext->request==NULL){
debug(ERROR, "Error While building the request from msg\n");
message(G_LOG_LEVEL_ERROR, "Error While building the request from msg\n");
return(-1);
}
@ -205,31 +205,32 @@ lasso_federation_termination_process_notification_msg(LassoFederationTermination
profileContext->remote_providerID = remote_providerID;
nameIdentifier = lasso_node_get_child(profileContext->request, "NameIdentifier", NULL);
if(nameIdentifier==NULL){
debug(ERROR, "Name identifier not found\n");
if (nameIdentifier == NULL) {
message(G_LOG_LEVEL_ERROR, "Name identifier not found\n");
return(-2);
}
/* Verify federation */
if(profileContext->user==NULL){
debug(ERROR, "User environ not found\n");
if (profileContext->user == NULL){
message(G_LOG_LEVEL_ERROR, "User environ not found\n");
return(-3);
}
identity = lasso_user_get_identity(profileContext->user, remote_providerID);
if(identity==NULL){
debug(WARNING, "No identity for %s\n", remote_providerID);
if (identity == NULL) {
message(G_LOG_LEVEL_WARNING, "No identity for %s\n", remote_providerID);
return(-4);
}
if(lasso_identity_verify_nameIdentifier(identity, nameIdentifier)==FALSE){
debug(WARNING, "No name identifier for %s\n", remote_providerID);
if (lasso_identity_verify_nameIdentifier(identity, nameIdentifier) == FALSE) {
message(G_LOG_LEVEL_WARNING, "No name identifier for %s\n", remote_providerID);
return(-5);
}
/* remove federation of the remote provider */
lasso_identity_remove_remote_nameIdentifier(identity);
debug(INFO, "Remote name identifier removed from federation with %s\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_INFO, "Remote name identifier removed from federation with %s\n",
profileContext->remote_providerID);
return(0);
}

View File

@ -38,7 +38,7 @@ lasso_lecp_build_authn_request_msg(LassoLecp *lecp)
lecp->msg_body = lasso_node_export_to_soap(lecp->authnRequest);
if(lecp->msg_body==NULL){
debug(ERROR, "Error while exporting the AuthnRequest to soap msg\n");
message(G_LOG_LEVEL_ERROR, "Error while exporting the AuthnRequest to soap msg\n");
return(-2);
}
@ -53,7 +53,7 @@ lasso_lecp_build_authn_request_envelope_msg(LassoLecp *lecp)
/* FIXME : export to base 64 or simple xml dump */
lecp->msg_body = lasso_node_export_to_base64(lecp->request);
if(lecp->msg_body==NULL){
debug(ERROR, "Error while exporting the AuthnRequestEnvelope to msg\n");
message(G_LOG_LEVEL_ERROR, "Error while exporting the AuthnRequestEnvelope to msg\n");
return(-2);
}
@ -67,7 +67,7 @@ lasso_lecp_build_authn_response_msg(LassoLecp *lecp)
lecp->msg_body = lasso_node_export_to_soap(lecp->authnResponse);
if(lecp->msg_body==NULL){
debug(ERROR, "Error while exporting the AuthnResponse to soap msg\n");
message(G_LOG_LEVEL_ERROR, "Error while exporting the AuthnResponse to soap msg\n");
return(-2);
}
@ -80,8 +80,8 @@ lasso_lecp_build_authn_response_envelope_msg(LassoLecp *lecp)
g_return_val_if_fail(LASSO_IS_LECP(lecp), -1);
lecp->msg_body = lasso_node_export_to_soap(lecp->response);
if(lecp->msg_body==NULL){
debug(ERROR, "Error while exporting the AuthnResponseEnvelope to msg\n");
if (lecp->msg_body == NULL) {
message(G_LOG_LEVEL_ERROR, "Error while exporting the AuthnResponseEnvelope to msg\n");
return(-2);
}
@ -114,7 +114,7 @@ lasso_lecp_init_authn_request_envelope(LassoLecp *lecp)
g_return_val_if_fail(LASSO_IS_LECP(lecp), -1);
if(lecp->authnRequest==NULL){
debug(ERROR, "AuthnRequest not found\n");
message(G_LOG_LEVEL_ERROR, "AuthnRequest not found\n");
return(-4);
}
@ -135,14 +135,14 @@ lasso_lecp_process_authn_request_envelope_msg(LassoLecp *lecp,
g_return_val_if_fail(request_msg!=NULL, -2);
lecp->request = lasso_authn_request_envelope_new_from_export(request_msg, lassoNodeExportTypeBase64);
if(lecp->request==NULL){
debug(ERROR, "Error while building the authentication request envelope\n");
if (lecp->request == NULL) {
message(G_LOG_LEVEL_ERROR, "Error while building the authentication request envelope\n");
return(-3);
}
lecp->authnRequest = lasso_authn_request_envelope_get_authnRequest(LASSO_AUTHN_REQUEST_ENVELOPE(lecp->request));
if(lecp->authnRequest==NULL){
debug(ERROR, "AuthnRequest not found\n");
if (lecp->authnRequest == NULL) {
message(G_LOG_LEVEL_ERROR, "AuthnRequest not found\n");
return(-4);
}
@ -157,21 +157,21 @@ lasso_lecp_process_authn_response_envelope_msg(LassoLecp *lecp,
g_return_val_if_fail(response_msg!=NULL, -2);
lecp->response = lasso_authn_response_envelope_new_from_export(response_msg, lassoNodeExportTypeBase64);
if(lecp->response==NULL){
debug(ERROR, "Error while building the authentication response envelope\n");
if (lecp->response == NULL) {
message(G_LOG_LEVEL_ERROR, "Error while building the authentication response envelope\n");
return(-3);
}
lecp->authnResponse = lasso_authn_response_envelope_get_authnResponse(LASSO_AUTHN_RESPONSE_ENVELOPE(lecp->response));
if(lecp->authnResponse==NULL){
debug(ERROR, "AuthnResponse not found\n");
if (lecp->authnResponse == NULL) {
message(G_LOG_LEVEL_ERROR, "AuthnResponse not found\n");
return(-4);
}
lecp->assertionConsumerServiceURL = lasso_authn_response_envelope_get_assertionConsumerServiceURL(
LASSO_AUTHN_RESPONSE_ENVELOPE(lecp->response));
if(lecp->assertionConsumerServiceURL){
debug(ERROR, "Assertion consumer service url not found\n");
if (lecp->assertionConsumerServiceURL == NULL){
message(G_LOG_LEVEL_ERROR, "Assertion consumer service URL not found\n");
return(-5);
}
@ -185,7 +185,7 @@ lasso_lecp_process_authn_response_envelope_msg(LassoLecp *lecp,
static void
lasso_lecp_finalize(LassoLecp *lecp)
{
debug(INFO, "Lecp object 0x%x finalized ...\n", lecp);
debug("Lecp object 0x%x finalized ...\n", lecp);
parent_class->finalize(G_OBJECT(lecp));
}

View File

@ -59,7 +59,7 @@ lasso_login_get_assertion_nameIdentifier(LassoNode *assertion)
return (ni);
}
else {
debug(ERROR, "NameIdentifier value not found in AuthenticationStatement element.\n");
message(G_LOG_LEVEL_ERROR, "NameIdentifier value not found in AuthenticationStatement element.\n");
return (NULL);
}
}
@ -80,7 +80,7 @@ lasso_login_add_response_assertion(LassoLogin *login,
"RequestID", &err);
if (requestID == NULL) {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
ret = err->code;
g_error_free(err);
return(ret);
@ -98,7 +98,7 @@ lasso_login_add_response_assertion(LassoLogin *login,
LASSO_SAML_AUTHENTICATION_STATEMENT(authentication_statement));
}
else {
debug(ERROR, "Failed to build the AuthenticationStatement element of the Assertion.\n");
message(G_LOG_LEVEL_ERROR, "Failed to build the AuthenticationStatement element of the Assertion.\n");
lasso_node_destroy(assertion);
return(-3);
}
@ -147,7 +147,7 @@ lasso_login_process_federation(LassoLogin *login)
}
}
else if (xmlStrEqual(nameIDPolicy, lassoLibNameIDPolicyTypeFederated)) {
debug(DEBUG, "NameIDPolicy is federated\n");
debug("NameIDPolicy is federated\n");
if (identity == NULL) {
identity = lasso_identity_new(LASSO_PROFILE_CONTEXT(login)->remote_providerID);
@ -165,7 +165,7 @@ lasso_login_process_federation(LassoLogin *login)
identity);
}
else {
debug(DEBUG, "An identity was found.\n");
debug("An identity was found.\n");
}
}
else if (xmlStrEqual(nameIDPolicy, lassoLibNameIDPolicyTypeOneTime)) {
@ -205,7 +205,7 @@ lasso_login_process_response_status_and_assertion(LassoLogin *login) {
/* store NameIdentifier */
login->nameIdentifier = lasso_login_get_assertion_nameIdentifier(assertion);
if (login->nameIdentifier == NULL) {
debug(ERROR, "NameIdentifier element not found in Assertion.\n");
message(G_LOG_LEVEL_ERROR, "NameIdentifier element not found in Assertion.\n");
ret = -4;
goto done;
}
@ -215,14 +215,14 @@ lasso_login_process_response_status_and_assertion(LassoLogin *login) {
status = lasso_node_get_child(LASSO_PROFILE_CONTEXT(login)->response,
"Status", lassoSamlProtocolHRef);
if (status == NULL) {
debug(ERROR, "Status element not found in response.\n");
message(G_LOG_LEVEL_ERROR, "Status element not found in response.\n");
ret = -9;
goto done;
}
statusCode = lasso_node_get_child(status, "StatusCode", lassoSamlProtocolHRef);
if (statusCode == NULL) {
debug(ERROR, "StatusCode element not found in Status.\n");
message(G_LOG_LEVEL_ERROR, "StatusCode element not found in Status.\n");
ret = -8;
goto done;
}
@ -233,7 +233,7 @@ lasso_login_process_response_status_and_assertion(LassoLogin *login) {
}
}
else {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
ret = err->code;
g_error_free(err);
}
@ -265,15 +265,17 @@ lasso_login_build_artifact_msg(LassoLogin *login,
xmlChar *relayState;
xmlChar *assertionHandle, *identityProviderSuccinctID;
g_return_val_if_fail(authenticationMethod != NULL && reauthenticateOnOrAfter != NULL, -1);
if (method != lassoHttpMethodRedirect && method != lassoHttpMethodPost) {
debug(ERROR, "Invalid HTTP method, it could be REDIRECT or POST\n.");
return (-1);
message(G_LOG_LEVEL_ERROR, "Invalid HTTP method, it could be REDIRECT or POST\n.");
return (-2);
}
/* ProtocolProfile must be BrwsArt */
if (login->protocolProfile != lassoLoginProtocolProfileBrwsArt) {
debug(WARNING, "Failed to build artifact message, an AuthnResponse is required by ProtocolProfile.\n");
return (-2);
message(WARNING, "Failed to build artifact message, an AuthnResponse is required by ProtocolProfile.\n");
return (-3);
}
/* federation */
@ -283,14 +285,14 @@ lasso_login_build_artifact_msg(LassoLogin *login,
/* fill the response with the assertion */
if (identity != NULL && authentication_result == 1) {
debug(DEBUG, "An identity found, so build an assertion.\n");
debug("An identity found, so build an assertion.\n");
lasso_login_add_response_assertion(login,
identity,
authenticationMethod,
reauthenticateOnOrAfter);
}
else {
debug(DEBUG, "No identity or login failed !!!\n");
debug("No identity or login failed !!!\n");
if (authentication_result == 0) {
lasso_profile_context_set_response_status(LASSO_PROFILE_CONTEXT(login),
lassoSamlStatusCodeRequestDenied);
@ -298,7 +300,7 @@ lasso_login_build_artifact_msg(LassoLogin *login,
}
/* save response dump */
login->response_dump = lasso_node_export_to_soap(LASSO_PROFILE_CONTEXT(login)->response);
debug(DEBUG, "SOAP enveloped Samlp:response = %s\n", LASSO_LOGIN(login)->response_dump);
debug("SOAP enveloped Samlp:response = %s\n", LASSO_LOGIN(login)->response_dump);
remote_provider = lasso_server_get_provider(LASSO_PROFILE_CONTEXT(login)->server,
LASSO_PROFILE_CONTEXT(login)->remote_providerID);
@ -309,7 +311,7 @@ lasso_login_build_artifact_msg(LassoLogin *login,
identityProviderSuccinctID = lasso_str_hash(LASSO_PROFILE_CONTEXT(login)->server->providerID,
LASSO_PROFILE_CONTEXT(login)->server->private_key);
assertionHandle = lasso_build_random_sequence(20);
sprintf(samlArt, "%c%c%s%s", 0, 3, identityProviderSuccinctID, assertionHandle);
g_sprintf(samlArt, "%c%c%s%s", 0, 3, identityProviderSuccinctID, assertionHandle);
g_free(assertionHandle);
xmlFree(identityProviderSuccinctID);
b64_samlArt = (gchar *)xmlSecBase64Encode(samlArt, 42, 0);
@ -320,9 +322,9 @@ lasso_login_build_artifact_msg(LassoLogin *login,
switch (method) {
case lassoHttpMethodRedirect:
LASSO_PROFILE_CONTEXT(login)->msg_url = g_new(gchar, 1024+1);
sprintf(LASSO_PROFILE_CONTEXT(login)->msg_url, "%s?SAMLArt=%s", url, b64_samlArt);
g_sprintf(LASSO_PROFILE_CONTEXT(login)->msg_url, "%s?SAMLArt=%s", url, b64_samlArt);
if (relayState != NULL) {
sprintf(LASSO_PROFILE_CONTEXT(login)->msg_url, "%s&RelayState=%s",
g_sprintf(LASSO_PROFILE_CONTEXT(login)->msg_url, "%s&RelayState=%s",
LASSO_PROFILE_CONTEXT(login)->msg_url, relayState);
}
break;
@ -367,14 +369,14 @@ lasso_login_build_authn_request_msg(LassoLogin *login)
else {
/* FIXME : is there a default value for AuthnRequestsSigned */
must_sign = 0;
debug(WARNING, "The element 'AuthnRequestsSigned' is missing in metadata of server.\n");
message(WARNING, "The element 'AuthnRequestsSigned' is missing in metadata of server.\n");
}
/* export request depending on the request ProtocolProfile */
request_protocolProfile = lasso_provider_get_singleSignOnProtocolProfile(remote_provider);
if (request_protocolProfile == NULL) {
/* FIXME : is there a default value for SingleSignOnProtocolProfile */
debug(WARNING, "The element 'SingleSignOnProtocolProfile' is missing in metadata of remote provider.\n");
message(WARNING, "The element 'SingleSignOnProtocolProfile' is missing in metadata of remote provider.\n");
ret = -1;
}
@ -382,7 +384,7 @@ lasso_login_build_authn_request_msg(LassoLogin *login)
if (ret == 0) {
url = lasso_provider_get_singleSignOnServiceURL(remote_provider);
if (url == NULL) {
debug(ERROR, "The element 'SingleSignOnServiceURL' is missing in metadata of remote provider.\n");
message(G_LOG_LEVEL_ERROR, "The element 'SingleSignOnServiceURL' is missing in metadata of remote provider.\n");
ret = -2;
}
}
@ -395,14 +397,14 @@ lasso_login_build_authn_request_msg(LassoLogin *login)
LASSO_PROFILE_CONTEXT(login)->server->signature_method,
LASSO_PROFILE_CONTEXT(login)->server->private_key);
if (query == NULL) {
debug(ERROR, "Failed to create AuthnRequest query (signed).\n");
message(G_LOG_LEVEL_ERROR, "Failed to create AuthnRequest query (signed).\n");
ret = -3;
}
}
else {
query = lasso_node_export_to_query(LASSO_PROFILE_CONTEXT(login)->request, 0, NULL);
if (query == NULL) {
debug(ERROR, "Failed to create AuthnRequest query.\n");
message(G_LOG_LEVEL_ERROR, "Failed to create AuthnRequest query.\n");
ret = -3;
}
}
@ -422,7 +424,7 @@ lasso_login_build_authn_request_msg(LassoLogin *login)
LASSO_PROFILE_CONTEXT(login)->msg_body = lareq;
}
else {
debug(ERROR, "Failed to export AuthnRequest (Base64 encoded).\n");
message(G_LOG_LEVEL_ERROR, "Failed to export AuthnRequest (Base64 encoded).\n");
ret = -3;
}
}
@ -457,14 +459,14 @@ lasso_login_build_authn_response_msg(LassoLogin *login,
/* fill the response with the assertion */
if (identity != NULL && authentication_result == 1) {
printf("DEBUG - an identity found, so build an assertion\n");
debug("An identity found, so build an assertion\n");
lasso_login_add_response_assertion(login,
identity,
authenticationMethod,
reauthenticateOnOrAfter);
}
else {
printf("No identity or login failed !!!\n");
debug("No identity or login failed !!!\n");
if (authentication_result == 0) {
lasso_profile_context_set_response_status(LASSO_PROFILE_CONTEXT(login),
lassoSamlStatusCodeRequestDenied);
@ -505,7 +507,7 @@ lasso_login_create_user(LassoLogin *login,
if (user_dump != NULL) {
LASSO_PROFILE_CONTEXT(login)->user = lasso_user_new_from_dump(user_dump);
if (LASSO_PROFILE_CONTEXT(login)->user == NULL) {
debug(ERROR, "Failed to create the user from the user dump\n");
message(G_LOG_LEVEL_ERROR, "Failed to create the user from the user dump\n");
ret = -1;
goto done;
}
@ -518,7 +520,7 @@ lasso_login_create_user(LassoLogin *login,
assertion = lasso_node_get_child(LASSO_PROFILE_CONTEXT(login)->response,
"Assertion", lassoLibHRef);
if (assertion == NULL) {
debug(ERROR, "Assertion element not found in response.\n");
message(G_LOG_LEVEL_ERROR, "Assertion element not found in response.\n");
ret = -2;
goto done;
}
@ -531,14 +533,14 @@ lasso_login_create_user(LassoLogin *login,
/* put the 2 NameIdentifiers in user object */
nameIdentifier = lasso_node_get_child(assertion, "NameIdentifier", lassoSamlAssertionHRef);
if (nameIdentifier == NULL) {
debug(ERROR, "NameIdentifier element not found in assertion.\n");
message(G_LOG_LEVEL_ERROR, "NameIdentifier element not found in assertion.\n");
ret = -3;
goto done;
}
idpProvidedNameIdentifier = lasso_node_get_child(assertion, "IDPProvidedNameIdentifier", lassoLibHRef);
if (idpProvidedNameIdentifier == NULL) {
debug(ERROR, "IDPProvidedNameIdentifier element not found in assertion.\n");
message(G_LOG_LEVEL_ERROR, "IDPProvidedNameIdentifier element not found in assertion.\n");
ret = -4;
goto done;
}
@ -559,7 +561,7 @@ lasso_login_create_user(LassoLogin *login,
identity);
}
else {
debug(ERROR, "response attribute is empty.\n");
message(G_LOG_LEVEL_ERROR, "response attribute is empty.\n");
}
done:
@ -587,7 +589,7 @@ lasso_login_dump(LassoLogin *login)
node = lasso_node_new_from_dump(parent_dump);
g_free(parent_dump);
sprintf(protocolProfile, "%d", login->protocolProfile);
g_sprintf(protocolProfile, "%d", login->protocolProfile);
LASSO_NODE_GET_CLASS(node)->new_child(node, "ProtocolProfile", protocolProfile, FALSE);
g_free(protocolProfile);
@ -637,7 +639,7 @@ lasso_login_init_from_authn_request_msg(LassoLogin *login,
if (authn_request_method != lassoHttpMethodRedirect && \
authn_request_method != lassoHttpMethodGet && \
authn_request_method != lassoHttpMethodPost) {
debug(ERROR, "Invalid HTTP method, it could be REDIRECT/GET or POST\n.");
message(G_LOG_LEVEL_ERROR, "Invalid HTTP method, it could be REDIRECT/GET or POST\n.");
return (-1);
}
@ -653,7 +655,7 @@ lasso_login_init_from_authn_request_msg(LassoLogin *login,
break;
case lassoHttpMethodPost:
/* TODO LibAuthnRequest send by method POST */
debug(ERROR, "HTTP method POST isn't implemented yet.\n");
message(G_LOG_LEVEL_ERROR, "HTTP method POST isn't implemented yet.\n");
return (-2);
}
LASSO_PROFILE_CONTEXT(login)->request_type = lassoMessageTypeAuthnRequest;
@ -689,7 +691,7 @@ lasso_login_init_from_authn_request_msg(LassoLogin *login,
/* get remote ProviderID */
LASSO_PROFILE_CONTEXT(login)->remote_providerID = lasso_node_get_child_content(LASSO_PROFILE_CONTEXT(login)->request,
"ProviderID", NULL);
printf("remote_providerID = %s\n", LASSO_PROFILE_CONTEXT(login)->remote_providerID);
remote_provider = lasso_server_get_provider(LASSO_PROFILE_CONTEXT(login)->server,
LASSO_PROFILE_CONTEXT(login)->remote_providerID);
/* Is authnRequest signed ? */
@ -700,7 +702,7 @@ lasso_login_init_from_authn_request_msg(LassoLogin *login,
switch (authn_request_method) {
case lassoHttpMethodGet:
case lassoHttpMethodRedirect:
debug(DEBUG, "Query signature has been verified\n");
debug("Query signature has been verified\n");
signature_status = lasso_query_verify_signature(authn_request_msg,
remote_provider->public_key,
LASSO_PROFILE_CONTEXT(login)->server->private_key);
@ -740,7 +742,7 @@ lasso_login_init_request(LassoLogin *login,
if (response_method != lassoHttpMethodRedirect && \
response_method != lassoHttpMethodGet && \
response_method != lassoHttpMethodPost) {
debug(ERROR, "Invalid HTTP method, it could be REDIRECT/GET or POST\n.");
message(G_LOG_LEVEL_ERROR, "Invalid HTTP method, it could be REDIRECT/GET or POST\n.");
return (-1);
}
@ -853,7 +855,7 @@ lasso_login_process_response_msg(LassoLogin *login,
static void
lasso_login_finalize(LassoLogin *login)
{
debug(DEBUG, "Login object 0x%x finalized ...\n", login);
debug("Login object 0x%x finalized ...\n", login);
g_free(login->assertionArtifact);
g_free(login->nameIdentifier);

View File

@ -54,7 +54,7 @@ lasso_logout_build_request_msg(LassoLogout *logout)
provider = lasso_server_get_provider(profileContext->server, profileContext->remote_providerID);
if(provider==NULL){
debug(ERROR, "Provider %s not found\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Provider %s not found\n", profileContext->remote_providerID);
return(-2);
}
@ -62,12 +62,12 @@ lasso_logout_build_request_msg(LassoLogout *logout)
protocolProfile = lasso_provider_get_singleLogoutProtocolProfile(provider);
if(protocolProfile==NULL){
debug(ERROR, "Single Logout Protocol profile not found\n");
message(G_LOG_LEVEL_ERROR, "Single Logout Protocol profile not found\n");
return(-3);
}
if(xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloSpSoap) || xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloIdpSoap)){
debug(DEBUG, "Building a soap request message\n");
debug("Building a soap request message\n");
profileContext->request_type = lassoHttpMethodSoap;
/* sign the request message */
@ -80,7 +80,7 @@ lasso_logout_build_request_msg(LassoLogout *logout)
profileContext->msg_body = lasso_node_export_to_soap(profileContext->request);
}
else if(xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloSpHttp)||xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloIdpHttp)){
debug(DEBUG, "Building a http get request message\n");
debug("Building a http get request message\n");
profileContext->request_type = lassoHttpMethodRedirect;
profileContext->msg_url = lasso_provider_get_singleLogoutServiceURL(provider);
profileContext->msg_url = lasso_node_export_to_query(profileContext->request,
@ -100,7 +100,7 @@ lasso_logout_build_response_msg(LassoLogout *logout)
xmlChar *protocolProfile;
if(!LASSO_IS_LOGOUT(logout)){
debug(ERROR, "Not a Logout object\n");
message(G_LOG_LEVEL_ERROR, "Not a Logout object\n");
return(-1);
}
@ -108,23 +108,23 @@ lasso_logout_build_response_msg(LassoLogout *logout)
provider = lasso_server_get_provider(profileContext->server, profileContext->remote_providerID);
if(provider==NULL){
debug(ERROR, "Provider not found %s\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Provider not found %s\n", profileContext->remote_providerID);
return(-2);
}
protocolProfile = lasso_provider_get_singleLogoutProtocolProfile(provider);
if(protocolProfile==NULL){
debug(ERROR, "Single Logout Protocol profile not found\n");
message(G_LOG_LEVEL_ERROR, "Single Logout Protocol profile not found\n");
return(-3);
}
if(xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloSpSoap) || xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloIdpSoap)){
debug(DEBUG, "Building a soap response message\n");
debug("Building a soap response message\n");
profileContext->msg_url = NULL;
profileContext->msg_body = lasso_node_export_to_soap(profileContext->response);
}
else if(xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloSpHttp)||xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloIdpHttp)){
debug(DEBUG, "Building a http get response message\n");
debug("Building a http get response message\n");
profileContext->response_type = lassoHttpMethodRedirect;
profileContext->msg_url = lasso_node_export_to_query(profileContext->response,
profileContext->server->signature_method,
@ -158,7 +158,7 @@ lasso_logout_get_next_providerID(LassoLogout *logout)
current_provider_id = g_strdup(g_ptr_array_index(profileContext->user->assertion_providerIDs, i));
if(logout->first_remote_providerID!=NULL){
if(xmlStrEqual(current_provider_id, logout->first_remote_providerID)){
/* debug(INFO, "It's the ProviderID of the SP requester (%s) : %s, pass it\n", logout->first_remote_providerID, current_provider_id); */
/* message(G_LOG_LEVEL_INFO, "It's the ProviderID of the SP requester (%s) : %s, pass it\n", logout->first_remote_providerID, current_provider_id); */
xmlFree(current_provider_id);
continue;
}
@ -184,23 +184,23 @@ lasso_logout_init_request(LassoLogout *logout,
profileContext = LASSO_PROFILE_CONTEXT(logout);
if(remote_providerID==NULL){
/* debug(INFO, "No remote provider id, get the next assertion peer provider id\n"); */
/* message(G_LOG_LEVEL_INFO, "No remote provider id, get the next assertion peer provider id\n"); */
profileContext->remote_providerID = lasso_user_get_next_assertion_remote_providerID(profileContext->user);
}
else{
/* debug(INFO, "A remote provider id for logout request : %s\n", remote_providerID); */
/* message(G_LOG_LEVEL_INFO, "A remote provider id for logout request : %s\n", remote_providerID); */
profileContext->remote_providerID = g_strdup(remote_providerID);
}
if(profileContext->remote_providerID==NULL){
debug(ERROR, "No provider id for init request\n");
message(G_LOG_LEVEL_ERROR, "No provider id for init request\n");
return(-2);
}
/* get identity */
identity = lasso_user_get_identity(profileContext->user, profileContext->remote_providerID);
if(identity==NULL){
debug(ERROR, "Identity not found\n");
message(G_LOG_LEVEL_ERROR, "Identity not found\n");
return(-3);
}
@ -217,12 +217,12 @@ lasso_logout_init_request(LassoLogout *logout,
nameIdentifier = LASSO_NODE(lasso_identity_get_local_nameIdentifier(identity));
break;
default:
debug(ERROR, "Unknown provider type\n");
message(G_LOG_LEVEL_ERROR, "Unknown provider type\n");
return(-4);
}
if(!nameIdentifier){
debug(ERROR, "Name identifier not found for %s\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Name identifier not found for %s\n", profileContext->remote_providerID);
return(-5);
}
@ -236,7 +236,7 @@ lasso_logout_init_request(LassoLogout *logout,
format);
if(profileContext->request==NULL){
debug(ERROR, "Error while creating the request\n");
message(G_LOG_LEVEL_ERROR, "Error while creating the request\n");
return(-6);
}
@ -262,22 +262,22 @@ lasso_logout_process_request_msg(LassoLogout *logout,
switch(request_method){
case lassoHttpMethodSoap:
debug(DEBUG, "Build a logout request from soap msg\n");
debug("Build a logout request from soap msg\n");
profileContext->request = lasso_logout_request_new_from_export(request_msg, lassoNodeExportTypeSoap);
break;
case lassoHttpMethodRedirect:
debug(DEBUG, "Build a logout request from query msg\n");
debug("Build a logout request from query msg\n");
profileContext->request = lasso_logout_request_new_from_export(request_msg, lassoNodeExportTypeQuery);
break;
case lassoHttpMethodGet:
debug(WARNING, "TODO, implement the get method\n");
message(G_LOG_LEVEL_WARNING, "TODO, implement the get method\n");
break;
default:
debug(ERROR, "Unknown request method\n");
message(G_LOG_LEVEL_ERROR, "Unknown request method\n");
return(-3);
}
if(profileContext->request==NULL){
debug(ERROR, "Error while building the request from msg\n");
message(G_LOG_LEVEL_ERROR, "Error while building the request from msg\n");
return(-4);
}
@ -291,7 +291,7 @@ lasso_logout_process_request_msg(LassoLogout *logout,
profileContext->request);
if(profileContext->response==NULL){
debug(ERROR, "Error while building response\n");
message(G_LOG_LEVEL_ERROR, "Error while building response\n");
return(-5);
}
@ -300,26 +300,26 @@ lasso_logout_process_request_msg(LassoLogout *logout,
nameIdentifier = lasso_node_get_child(profileContext->request, "NameIdentifier", NULL);
if(nameIdentifier==NULL){
debug(ERROR, "Name identifier not found in logout request\n");
message(G_LOG_LEVEL_ERROR, "Name identifier not found in logout request\n");
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-6);
}
remote_providerID = lasso_node_get_child_content(profileContext->request, "ProviderID", NULL);
if(remote_providerID==NULL){
debug(ERROR, "Provider id not found in logout request\n");
message(G_LOG_LEVEL_ERROR, "Provider id not found in logout request\n");
return(-7);
}
/* verify authentication */
if(profileContext->user==NULL){
debug(WARNING, "User environ not found\n");
message(G_LOG_LEVEL_WARNING, "User environ not found\n");
statusCode_class->set_prop(statusCode, "Value", lassoSamlStatusCodeRequestDenied);
}
assertion = lasso_user_get_assertion(profileContext->user, remote_providerID);
if(assertion==NULL){
debug(WARNING, "%s has no assertion\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "%s has no assertion\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoSamlStatusCodeRequestDenied);
return(-8);
}
@ -327,13 +327,13 @@ lasso_logout_process_request_msg(LassoLogout *logout,
/* Verify federation */
identity = lasso_user_get_identity(profileContext->user, remote_providerID);
if(identity==NULL){
debug(WARNING, "No identity for %s\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "No identity for %s\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-9);
}
if(lasso_identity_verify_nameIdentifier(identity, nameIdentifier)==FALSE){
debug(WARNING, "No name identifier for %s\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "No name identifier for %s\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-10);
}
@ -359,7 +359,7 @@ lasso_logout_process_request_msg(LassoLogout *logout,
break;
default:
debug(ERROR, "Uknown provider type\n");
message(G_LOG_LEVEL_ERROR, "Uknown provider type\n");
}
return(0);
@ -388,18 +388,18 @@ lasso_logout_process_response_msg(LassoLogout *logout,
profileContext->response = lasso_logout_response_new_from_export(response_msg, lassoNodeExportTypeQuery);
break;
default:
debug(ERROR, "Unknown response method\n");
message(G_LOG_LEVEL_ERROR, "Unknown response method\n");
return(-3);
}
if(profileContext->response==NULL){
debug(ERROR, "LogoutResponse is NULL\n");
message(G_LOG_LEVEL_ERROR, "LogoutResponse is NULL\n");
return(-1);
}
statusCode = lasso_node_get_child(profileContext->response, "StatusCode", NULL);
if(statusCode==NULL){
debug(ERROR, "StatusCode node not found\n");
message(G_LOG_LEVEL_ERROR, "StatusCode node not found\n");
return(-1);
}
@ -417,11 +417,11 @@ lasso_logout_process_response_msg(LassoLogout *logout,
case lassoProviderTypeIdp:
/* response os ok, delete the assertion */
lasso_user_remove_assertion(profileContext->user, profileContext->remote_providerID);
debug(INFO, "Remove assertion for %s\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_INFO, "Remove assertion for %s\n", profileContext->remote_providerID);
/* if no more assertion for other providers, remove assertion of the original provider and restore the original requester infos */
if(profileContext->user->assertion_providerIDs->len == 1){
debug(WARNING, "remove assertion of the original provider\n");
message(G_LOG_LEVEL_WARNING, "remove assertion of the original provider\n");
lasso_user_remove_assertion(profileContext->user, logout->first_remote_providerID);
profileContext->remote_providerID = logout->first_remote_providerID;
@ -431,7 +431,7 @@ lasso_logout_process_response_msg(LassoLogout *logout,
break;
default:
debug(ERROR, "Unkown provider type\n");
message(G_LOG_LEVEL_ERROR, "Unkown provider type\n");
}
return(0);
@ -444,7 +444,7 @@ lasso_logout_process_response_msg(LassoLogout *logout,
static void
lasso_logout_finalize(LassoLogout *logout)
{
debug(INFO, "Logout object 0x%x finalized ...\n", logout);
debug("Logout object 0x%x finalized ...\n", logout);
parent_class->finalize(G_OBJECT(logout));
}

View File

@ -55,26 +55,26 @@ lasso_name_identifier_mapping_build_request_msg(LassoNameIdentifierMapping *mapp
/* get the prototocol profile of the name_identifier_mapping */
provider = lasso_server_get_provider(profileContext->server, profileContext->remote_providerID);
if(provider==NULL){
debug(ERROR, "Provider %s not found\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Provider %s not found\n", profileContext->remote_providerID);
return(-2);
}
protocolProfile = lasso_provider_get_nameIdentifierMappingProtocolProfile(provider, &err);
if(err != NULL){
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
ret = err->code;
g_error_free(err);
return (ret);
}
if(xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloSpSoap) || xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloIdpSoap)){
debug(DEBUG, "building a soap request message\n");
debug("building a soap request message\n");
profileContext->request_type = lassoHttpMethodSoap;
profileContext->msg_url = lasso_provider_get_nameIdentifierMappingServiceURL(provider, NULL);
profileContext->msg_body = lasso_node_export_to_soap(profileContext->request);
}
else if(xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloSpHttp)||xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloIdpHttp)){
debug(DEBUG, "building a http get request message\n");
debug("building a http get request message\n");
profileContext->request_type = lassoHttpMethodRedirect;
profileContext->msg_url = lasso_node_export_to_query(profileContext->request,
profileContext->server->signature_method,
@ -100,25 +100,25 @@ lasso_name_identifier_mapping_build_response_msg(LassoNameIdentifierMapping *map
provider = lasso_server_get_provider(profileContext->server, profileContext->remote_providerID);
if(provider==NULL){
debug(ERROR, "Provider %s not found\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Provider %s not found\n", profileContext->remote_providerID);
return(-2);
}
protocolProfile = lasso_provider_get_nameIdentifierMappingProtocolProfile(provider, &err);
if(err != NULL){
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
ret = err->code;
g_error_free(err);
return(ret);
}
if(xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloSpSoap) || xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloIdpSoap)){
debug(DEBUG, "building a soap response message\n");
debug("building a soap response message\n");
profileContext->msg_url = lasso_provider_get_nameIdentifierMappingServiceURL(provider, NULL);
profileContext->msg_body = lasso_node_export_to_soap(profileContext->response);
}
else if(xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloSpHttp)||xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloIdpHttp)){
debug(DEBUG, "building a http get response message\n");
debug("building a http get response message\n");
profileContext->response_type = lassoHttpMethodRedirect;
profileContext->msg_url = lasso_node_export_to_query(profileContext->response,
profileContext->server->signature_method,
@ -149,7 +149,7 @@ lasso_name_identifier_mapping_init_request(LassoNameIdentifierMapping *mapping,
/* get identity */
identity = lasso_user_get_identity(profileContext->user, profileContext->remote_providerID);
if(identity==NULL){
debug(ERROR, "error, identity not found\n");
message(G_LOG_LEVEL_ERROR, "error, identity not found\n");
return(-3);
}
@ -169,12 +169,12 @@ lasso_name_identifier_mapping_init_request(LassoNameIdentifierMapping *mapping,
nameIdentifier = LASSO_NODE(lasso_identity_get_local_nameIdentifier(identity));
break;
default:
debug(ERROR, "Unknown provider type\n");
message(G_LOG_LEVEL_ERROR, "Unknown provider type\n");
return(-4);
}
if(!nameIdentifier){
debug(ERROR, "Name identifier not found\n");
message(G_LOG_LEVEL_ERROR, "Name identifier not found\n");
return(-5);
}
@ -211,18 +211,18 @@ lasso_name_identifier_mapping_process_request_msg(LassoNameIdentifierMapping *ma
switch(request_method){
case lassoHttpMethodSoap:
debug(DEBUG, "build a name_identifier_mapping request from soap msg\n");
debug("build a name_identifier_mapping request from soap msg\n");
profileContext->request = lasso_name_identifier_mapping_request_new_from_soap(request_msg);
break;
case lassoHttpMethodRedirect:
debug(DEBUG, "build a name_identifier_mapping request from query msg\n");
debug("build a name_identifier_mapping request from query msg\n");
profileContext->request = lasso_name_identifier_mapping_request_new_from_query(request_msg);
break;
case lassoHttpMethodGet:
debug(WARNING, "TODO, implement the get method\n");
message(G_LOG_LEVEL_WARNING, "TODO, implement the get method\n");
break;
default:
debug(ERROR, "Unknown request method\n");
message(G_LOG_LEVEL_ERROR, "Unknown request method\n");
return(-3);
}
@ -251,13 +251,13 @@ lasso_name_identifier_mapping_process_request_msg(LassoNameIdentifierMapping *ma
/* Verify federation */
identity = lasso_user_get_identity(profileContext->user, remote_providerID);
if(identity==NULL){
debug(WARNING, "No identity for %s\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "No identity for %s\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-6);
}
if(lasso_identity_verify_nameIdentifier(identity, nameIdentifier)==FALSE){
debug(WARNING, "No name identifier for %s\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "No name identifier for %s\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-7);
}
@ -286,7 +286,7 @@ lasso_name_identifier_mapping_process_response_msg(LassoNameIdentifierMapping *m
case lassoHttpMethodSoap:
profileContext->response = lasso_name_identifier_mapping_response_new_from_soap(response_msg);
default:
debug(ERROR, "Unknown response method\n");
message(G_LOG_LEVEL_ERROR, "Unknown response method\n");
return(-3);
}
@ -298,7 +298,7 @@ lasso_name_identifier_mapping_process_response_msg(LassoNameIdentifierMapping *m
}
}
else {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
ret = err->code;
g_error_free(err);
return (ret);

View File

@ -53,13 +53,13 @@ lasso_profile_context_get_request_type_from_soap_msg(gchar *soap)
soap_node = lasso_node_new_from_dump(soap);
if(soap_node==NULL){
debug(ERROR, "Error while build node from soap msg\n");
message(G_LOG_LEVEL_ERROR, "Error while build node from soap msg\n");
return(-1);
}
body_node = lasso_node_get_child(soap_node, "Body", NULL);
if(body_node==NULL){
debug(ERROR, "Body node not found\n");
message(G_LOG_LEVEL_ERROR, "Body node not found\n");
return(-2);
}
@ -69,7 +69,7 @@ lasso_profile_context_get_request_type_from_soap_msg(gchar *soap)
name = lasso_node_get_name(request_node);
if(xmlStrEqual(name, "Request")){
debug(INFO, "A Request node found\n");
message(G_LOG_LEVEL_INFO, "A Request node found\n");
type = lassoRequestTypeLogin;
}
else if(xmlStrEqual(name, "LogoutRequest")){
@ -85,7 +85,7 @@ lasso_profile_context_get_request_type_from_soap_msg(gchar *soap)
type = lassoRequestTypeNameIdentifierMapping;
}
else{
debug(ERROR, "Unkown node name : %s\n", name);
message(G_LOG_LEVEL_ERROR, "Unkown node name : %s\n", name);
}
}
@ -201,7 +201,7 @@ lasso_profile_context_dispose(LassoProfileContext *ctx)
}
ctx->private->dispose_has_run = TRUE;
debug(DEBUG, "ProfileContext object 0x%x disposed ...\n", ctx);
debug("ProfileContext object 0x%x disposed ...\n", ctx);
/* unref reference counted objects */
lasso_node_destroy(ctx->request);
@ -214,7 +214,7 @@ lasso_profile_context_dispose(LassoProfileContext *ctx)
static void
lasso_profile_context_finalize(LassoProfileContext *ctx)
{
debug(DEBUG, "ProfileContext object 0x%x finalized ...\n", ctx);
debug("ProfileContext object 0x%x finalized ...\n", ctx);
g_free(ctx->remote_providerID);
g_free(ctx->msg_url);

View File

@ -55,18 +55,18 @@ lasso_register_name_identifier_build_request_msg(LassoRegisterNameIdentifier *re
/* get the prototocol profile of the register_name_identifier */
provider = lasso_server_get_provider(profileContext->server, profileContext->remote_providerID);
if(provider==NULL){
debug(ERROR, "Provider %s not found\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Provider %s not found\n", profileContext->remote_providerID);
return(-2);
}
protocolProfile = lasso_provider_get_registerNameIdentifierProtocolProfile(provider);
if(protocolProfile==NULL){
debug(ERROR, "Register_Name_Identifier Protocol profile not found\n");
message(G_LOG_LEVEL_ERROR, "Register_Name_Identifier Protocol profile not found\n");
return(-3);
}
if(xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloSpSoap) || xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloIdpSoap)){
debug(DEBUG, "Building a soap request message\n");
debug("Building a soap request message\n");
profileContext->request_type = lassoHttpMethodSoap;
/* sign the request message */
@ -79,7 +79,7 @@ lasso_register_name_identifier_build_request_msg(LassoRegisterNameIdentifier *re
profileContext->msg_body = lasso_node_export_to_soap(profileContext->request);
}
else if(xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloSpHttp)||xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloIdpHttp)){
debug(DEBUG, "Building a http get request message\n");
debug("Building a http get request message\n");
}
return(0);
@ -98,23 +98,23 @@ lasso_register_name_identifier_build_response_msg(LassoRegisterNameIdentifier *r
provider = lasso_server_get_provider(profileContext->server, profileContext->remote_providerID);
if(provider==NULL){
debug(ERROR, "Provider not found (ProviderID = %s)\n", profileContext->remote_providerID);
message(G_LOG_LEVEL_ERROR, "Provider not found (ProviderID = %s)\n", profileContext->remote_providerID);
return(-2);
}
protocolProfile = lasso_provider_get_registerNameIdentifierProtocolProfile(provider);
if(protocolProfile==NULL){
debug(ERROR, "Register name identifier protocol profile not found\n");
message(G_LOG_LEVEL_ERROR, "Register name identifier protocol profile not found\n");
return(-3);
}
if(xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloSpSoap) || xmlStrEqual(protocolProfile, lassoLibProtocolProfileSloIdpSoap)){
debug(DEBUG, "building a soap response message\n");
debug("building a soap response message\n");
profileContext->msg_url = lasso_provider_get_registerNameIdentifierServiceURL(provider);
profileContext->msg_body = lasso_node_export_to_soap(profileContext->response);
}
else if(xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloSpHttp)||xmlStrEqual(protocolProfile,lassoLibProtocolProfileSloIdpHttp)){
debug(DEBUG, "building a http get response message\n");
debug("building a http get response message\n");
}
return(0);
@ -131,7 +131,7 @@ lasso_register_name_identifier_init_request(LassoRegisterNameIdentifier *registe
gchar *remote_providerID)
{
LassoProfileContext *profileContext;
LassoNode *nameIdentifier, *nameIdentifier_node;
LassoNode *nameIdentifier_node;
LassoIdentity *identity;
xmlChar *spNameIdentifier, *spNameQualifier, *spFormat;
@ -144,15 +144,15 @@ lasso_register_name_identifier_init_request(LassoRegisterNameIdentifier *registe
profileContext = LASSO_PROFILE_CONTEXT(register_name_identifier);
if(remote_providerID==NULL){
debug(INFO, "No remote provider id, get the next identity peer provider id\n");
message(G_LOG_LEVEL_INFO, "No remote provider id, get the next identity peer provider id\n");
profileContext->remote_providerID = lasso_user_get_next_identity_remote_providerID(profileContext->user);
}
else{
debug(INFO, "A remote provider id for register name identifier request : %s\n", remote_providerID);
message(G_LOG_LEVEL_INFO, "A remote provider id for register name identifier request : %s\n", remote_providerID);
profileContext->remote_providerID = g_strdup(remote_providerID);
}
if(profileContext->remote_providerID==NULL){
debug(ERROR, "No provider id for init request\n");
message(G_LOG_LEVEL_ERROR, "No provider id for init request\n");
return(-2);
}
@ -161,7 +161,7 @@ lasso_register_name_identifier_init_request(LassoRegisterNameIdentifier *registe
/* get identity */
identity = lasso_user_get_identity(profileContext->user, profileContext->remote_providerID);
if(identity==NULL){
debug(ERROR, "Identity not found\n");
message(G_LOG_LEVEL_ERROR, "Identity not found\n");
return(-3);
}
@ -175,7 +175,7 @@ lasso_register_name_identifier_init_request(LassoRegisterNameIdentifier *registe
/* get the old name identifier */
identity = lasso_user_get_identity(profileContext->user, remote_providerID);
if(identity==NULL){
debug(ERROR, "Identity not found\n");
message(G_LOG_LEVEL_ERROR, "Identity not found\n");
return(-3);
}
nameIdentifier_node = lasso_identity_get_local_nameIdentifier(identity);
@ -201,7 +201,7 @@ lasso_register_name_identifier_init_request(LassoRegisterNameIdentifier *registe
/* get the old name identifier */
identity = lasso_user_get_identity(profileContext->user, remote_providerID);
if(identity==NULL){
debug(ERROR, "Identity not found\n");
message(G_LOG_LEVEL_ERROR, "Identity not found\n");
return(-4);
}
nameIdentifier_node = lasso_identity_get_local_nameIdentifier(identity);
@ -217,7 +217,7 @@ lasso_register_name_identifier_init_request(LassoRegisterNameIdentifier *registe
break;
default:
debug(ERROR, "Unknown provider type (%d)\n", profileContext->provider_type);
message(G_LOG_LEVEL_ERROR, "Unknown provider type (%d)\n", profileContext->provider_type);
return(-5);
}
@ -234,7 +234,7 @@ lasso_register_name_identifier_init_request(LassoRegisterNameIdentifier *registe
if(profileContext->request==NULL){
debug(ERROR, "Error while creating the request\n");
message(G_LOG_LEVEL_ERROR, "Error while creating the request\n");
return(-6);
}
@ -260,18 +260,18 @@ lasso_register_name_identifier_process_request_msg(LassoRegisterNameIdentifier *
switch(request_method){
case lassoHttpMethodSoap:
debug(DEBUG, "build a register_name_identifier request from soap msg\n");
debug("build a register_name_identifier request from soap msg\n");
profileContext->request = lasso_register_name_identifier_request_new_from_soap(request_msg);
break;
case lassoHttpMethodRedirect:
debug(DEBUG, "build a register_name_identifier request from query msg\n");
debug("build a register_name_identifier request from query msg\n");
profileContext->request = lasso_register_name_identifier_request_new_from_query(request_msg);
break;
case lassoHttpMethodGet:
debug(WARNING, "TODO, implement the get method\n");
message(G_LOG_LEVEL_WARNING, "TODO, implement the get method\n");
break;
default:
debug(ERROR, "Unknown request method\n");
message(G_LOG_LEVEL_ERROR, "Unknown request method\n");
return(-3);
}
@ -285,7 +285,7 @@ lasso_register_name_identifier_process_request_msg(LassoRegisterNameIdentifier *
profileContext->request);
if(profileContext->response==NULL){
debug(ERROR, "Error while building response\n");
message(G_LOG_LEVEL_ERROR, "Error while building response\n");
return(-4);
}
@ -294,27 +294,27 @@ lasso_register_name_identifier_process_request_msg(LassoRegisterNameIdentifier *
nameIdentifier = lasso_node_get_child(profileContext->request, "NameIdentifier", NULL);
if(nameIdentifier==NULL){
debug(ERROR, "No name identifier found in register_name_identifier request\n");
message(G_LOG_LEVEL_ERROR, "No name identifier found in register_name_identifier request\n");
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-5);
}
remote_providerID = lasso_node_get_child_content(profileContext->request, "ProviderID", NULL);
if(remote_providerID==NULL){
debug(ERROR, "No provider id found in register_name_identifier request\n");
message(G_LOG_LEVEL_ERROR, "No provider id found in register_name_identifier request\n");
return(-6);
}
/* Verify federation */
identity = lasso_user_get_identity(profileContext->user, remote_providerID);
if(identity==NULL){
debug(WARNING, "No identity for %s\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "No identity for %s\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-7);
}
if(lasso_identity_verify_nameIdentifier(identity, nameIdentifier)==FALSE){
debug(WARNING, "No name identifier for %s\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "No name identifier for %s\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
return(-8);
}
@ -322,7 +322,7 @@ lasso_register_name_identifier_process_request_msg(LassoRegisterNameIdentifier *
/* verify authentication (if ok, delete assertion) */
assertion = lasso_user_get_assertion(profileContext->user, remote_providerID);
if(assertion==NULL){
debug(WARNING, "%s has no assertion\n", remote_providerID);
message(G_LOG_LEVEL_WARNING, "%s has no assertion\n", remote_providerID);
statusCode_class->set_prop(statusCode, "Value", lassoSamlStatusCodeRequestDenied);
return(-9);
}
@ -355,7 +355,7 @@ lasso_register_name_identifier_process_response_msg(LassoRegisterNameIdentifier
profileContext->response = lasso_register_name_identifier_response_new_from_query(response_msg);
break;
default:
debug(ERROR, "Unknown response method\n");
message(G_LOG_LEVEL_ERROR, "Unknown response method\n");
return(-3);
}
@ -367,7 +367,7 @@ lasso_register_name_identifier_process_response_msg(LassoRegisterNameIdentifier
}
}
else {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
ret = err->code;
g_error_free(err);
return (ret);
@ -382,7 +382,7 @@ lasso_register_name_identifier_process_response_msg(LassoRegisterNameIdentifier
static void
lasso_register_name_identifier_finalize(LassoRegisterNameIdentifier *register_name_identifier)
{
debug(INFO, "Register Name Identifier object 0x%x finalized ...\n", register_name_identifier);
message(G_LOG_LEVEL_INFO, "Register Name Identifier object 0x%x finalized ...\n", register_name_identifier);
parent_class->finalize(G_OBJECT(register_name_identifier));
}
@ -492,12 +492,12 @@ lasso_register_name_identifier_new(LassoServer *server,
/* spNameQualifier = providerID; */
/* spFormat = "federated"; */
/* debug(DEBUG, "new name identifier : %s, name qualifier : %s, format : %s\n", spNameIdentifier, spNameQualifier, spFormat); */
/* debug("new name identifier : %s, name qualifier : %s, format : %s\n", spNameIdentifier, spNameQualifier, spFormat); */
/* /\* get the old name identifier *\/ */
/* identity = lasso_user_get_identity(profileContext->user, remote_providerID); */
/* if(identity==NULL){ */
/* debug(ERROR, "Identity not found\n"); */
/* message(G_LOG_LEVEL_ERROR, "Identity not found\n"); */
/* return(-3); */
/* } */
/* nameIdentifier_node = lasso_identity_get_local_nameIdentifier(identity); */
@ -523,7 +523,7 @@ lasso_register_name_identifier_new(LassoServer *server,
/* /\* get the old name identifier *\/ */
/* identity = lasso_user_get_identity(profileContext->user, remote_providerID); */
/* if(identity==NULL){ */
/* debug(ERROR, "Identity not found\n"); */
/* message(G_LOG_LEVEL_ERROR, "Identity not found\n"); */
/* return(-4); */
/* } */
/* nameIdentifier_node = lasso_identity_get_local_nameIdentifier(identity); */
@ -539,7 +539,7 @@ lasso_register_name_identifier_new(LassoServer *server,
/* break; */
/* default: */
/* debug(ERROR, "Unknown provider type (%d)\n", profileContext->provider_type); */
/* message(G_LOG_LEVEL_ERROR, "Unknown provider type (%d)\n", profileContext->provider_type); */
/* return(-5); */
/* } */

View File

@ -290,7 +290,7 @@ lasso_server_new(gchar *metadata,
/* get ProviderID in metadata */
providerID = lasso_node_get_attr_value(md_node, "ProviderID", &err);
if (providerID == NULL) {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
g_error_free(err);
lasso_node_destroy(md_node);
return (NULL);
@ -326,7 +326,7 @@ lasso_server_new_from_dump(gchar *dump)
server_node = lasso_node_new_from_dump(dump);
if(server_node==NULL){
debug(ERROR, "Error while loading server dump\n");
message(G_LOG_LEVEL_ERROR, "Error while loading server dump\n");
return(NULL);
}
server_class = LASSO_NODE_GET_CLASS(server_node);

View File

@ -57,7 +57,7 @@ lasso_user_add_assertion(LassoUser *user,
found = TRUE;
}
if(found==TRUE){
debug(ERROR, "A provider id already exists\n");
message(G_LOG_LEVEL_ERROR, "A provider id already exists\n");
return(-4);
}
@ -209,7 +209,7 @@ lasso_user_get_authentication_method(LassoUser *user,
as = lasso_node_get_child(assertion, "AuthenticationStatement", NULL);
authentication_method = lasso_node_get_attr_value(as, "AuthenticationMethod", &err);
if (authentication_method == NULL) {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
g_error_free(err);
goto done;
}
@ -312,13 +312,13 @@ lasso_user_remove_identity(LassoUser *user,
g_hash_table_steal(user->identities, remote_providerID);
}
else {
debug(DEBUG, "Failed to remove identity for remote Provider %s\n", remote_providerID);
debug("Failed to remove identity for remote Provider %s\n", remote_providerID);
}
/* remove the identity remote provider id */
for(i = 0; i<user->identity_providerIDs->len; i++){
if(xmlStrEqual(remote_providerID, g_ptr_array_index(user->identity_providerIDs, i))){
debug(DEBUG, "Remove assertion of %s\n", remote_providerID);
debug("Remove assertion of %s\n", remote_providerID);
g_ptr_array_remove_index(user->identity_providerIDs, i);
break;
}
@ -334,7 +334,7 @@ lasso_user_remove_identity(LassoUser *user,
static void
lasso_user_finalize(LassoUser *user)
{
debug(INFO, "User object 0x%x finalized ...\n", user);
message(G_LOG_LEVEL_INFO, "User object 0x%x finalized ...\n", user);
parent_class->finalize(G_OBJECT(user));
}
@ -424,7 +424,7 @@ lasso_user_new_from_dump(gchar *dump)
/* get user */
user_node = lasso_node_new_from_dump(dump);
if (user_node == NULL) {
debug(WARNING, "Can't create a user from dump\n");
message(G_LOG_LEVEL_WARNING, "Can't create a user from dump\n");
return (NULL);
}
@ -442,7 +442,7 @@ lasso_user_new_from_dump(gchar *dump)
assertion_node = lasso_node_new_from_xmlNode(assertion_xmlNode);
remote_providerID = lasso_node_get_attr_value(assertion_node, LASSO_USER_REMOTE_PROVIDERID_NODE, &err);
if (remote_providerID == NULL) {
debug(ERROR, err->message);
message(G_LOG_LEVEL_ERROR, err->message);
g_error_free(err);
continue;
}

View File

@ -36,6 +36,7 @@
/* #define yellow "\033[33m" */
/* #define blue "\033[34m" */
int debug_type;
int debug_line;
char debug_filename[512];
char debug_function[512];
@ -51,6 +52,7 @@ set_debug_info(int line,
char *filename,
char *function)
{
debug_type = 1;
debug_line = line;
strncpy(debug_filename, filename, 512);
strncpy(debug_function, function, 512);
@ -67,10 +69,10 @@ _debug(GLogLevelFlags level,
/* char new_debug_string[2048]; */
/* char *color = NULL; */
/* if ((level < 0) || (level > 3)) { */
/* printf("DEBUG LEVEL level=%d, must be 0<=x<=3 !!!\n", level); */
/* return; */
/* } */
if (level == G_LOG_LEVEL_DEBUG && debug_type == 0) {
g_warning("message() function should not be used with G_LOG_LEVEL_DEBUG level. Use debug() function rather.");
}
debug_type = 0;
va_start(args, format);
vsnprintf(debug_string, sizeof(debug_string), format, args);

View File

@ -46,7 +46,7 @@ void _debug(GLogLevelFlags level, const char *format, ...);
#define debug(format, ...);
#endif
#define message _debug
#define message(level, format, args...) _debug(level, format, ##args);
#ifdef __cplusplus
}

View File

@ -29,7 +29,7 @@ const char*
lasso_strerror(int error_code)
{
switch (error_code) {
case LASSO_ERROR_XML_ATTR_VALUE_NOTFOUND:
case LASSO_XML_ERROR_ATTR_VALUE_NOTFOUND:
return "Unable to get '%s' attribute value in '%s' element.\n";
default:
return "Undefined error code !!!\n";

View File

@ -23,6 +23,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define LASSO_ERROR_XML_ATTR_VALUE_NOTFOUND -1
#define LASSO_XML_ERROR_ATTR_VALUE_NOTFOUND -1
const char* lasso_strerror(int error_code);

View File

@ -731,8 +731,8 @@ lasso_node_impl_get_attr_value(LassoNode *node,
if (value == NULL) {
g_set_error(err, g_quark_from_string("Lasso"),
LASSO_ERROR_XML_ATTR_VALUE_NOTFOUND,
lasso_strerror(LASSO_ERROR_XML_ATTR_VALUE_NOTFOUND),
LASSO_XML_ERROR_ATTR_VALUE_NOTFOUND,
lasso_strerror(LASSO_XML_ERROR_ATTR_VALUE_NOTFOUND),
name, node->private->node->name);
}
@ -946,7 +946,7 @@ lasso_node_impl_verify_signature(LassoNode *node,
signature = xmlSecFindNode(node->private->node, xmlSecNodeSignature,
xmlSecDSigNs);
if (signature == NULL) {
debug(ERROR, "Signature element not found.\n");
message(G_LOG_LEVEL_ERROR, "Signature element not found.\n");
ret = -2;
goto done;
}
@ -954,12 +954,12 @@ lasso_node_impl_verify_signature(LassoNode *node,
/* create simple keys mngr */
mngr = xmlSecKeysMngrCreate();
if (mngr == NULL) {
debug(ERROR, "Failed to create keys manager.\n");
message(G_LOG_LEVEL_ERROR, "Failed to create keys manager.\n");
goto done;
}
if (xmlSecCryptoAppDefaultKeysMngrInit(mngr) < 0) {
debug(ERROR, "Failed to initialize keys manager.\n");
message(G_LOG_LEVEL_ERROR, "Failed to initialize keys manager.\n");
goto done;
}
@ -967,21 +967,21 @@ lasso_node_impl_verify_signature(LassoNode *node,
if (xmlSecCryptoAppKeysMngrCertLoad(mngr, certificate_file,
xmlSecKeyDataFormatPem,
xmlSecKeyDataTypeTrusted) < 0) {
debug(ERROR, "Failed to load pem certificate from \"%s\".\n",
certificate_file);
message(G_LOG_LEVEL_ERROR, "Failed to load pem certificate from \"%s\".\n",
certificate_file);
goto done;
}
/* create signature context */
dsigCtx = xmlSecDSigCtxCreate(mngr);
if (dsigCtx == NULL) {
debug(ERROR, "Failed to create signature context.\n");
message(G_LOG_LEVEL_ERROR, "Failed to create signature context.\n");
goto done;
}
/* verify signature */
if (xmlSecDSigCtxVerify(dsigCtx, signature) < 0) {
debug(ERROR, "Failed to verify signature.\n");
message(G_LOG_LEVEL_ERROR, "Failed to verify signature.\n");
goto done;
}
@ -989,7 +989,7 @@ lasso_node_impl_verify_signature(LassoNode *node,
ret = 0;
}
else {
debug(ERROR, "The signature of response is invalid.\n");
message(G_LOG_LEVEL_ERROR, "The signature of response is invalid.\n");
ret = -1;
}
@ -1322,7 +1322,7 @@ lasso_node_dispose(LassoNode *node)
}
node->private->dispose_has_run = TRUE;
debug(DEBUG, "%s 0x%x disposed ...\n", lasso_node_get_name(node), node);
debug("%s 0x%x disposed ...\n", lasso_node_get_name(node), node);
/* unref reference counted objects */
/* we don't have any here */
@ -1333,7 +1333,7 @@ lasso_node_dispose(LassoNode *node)
static void
lasso_node_finalize(LassoNode *node)
{
debug(DEBUG, "%s 0x%x finalized ...\n", lasso_node_get_name(node), node);
debug("%s 0x%x finalized ...\n", lasso_node_get_name(node), node);
if (node->private->node_is_weak_ref == FALSE) {
xmlUnlinkNode(node->private->node);