diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2004-12-29 17:25:56 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2004-12-29 17:25:56 +0000 |
| commit | 300b281a6df66390db742859a8f6b63db181835b (patch) | |
| tree | f1b589c534f6b5568eebffb6be5b7a3691c73fa9 | |
| parent | 70801607cfa1c7e85cc0101844ce83f8e3bb93a6 (diff) | |
only set Status in session on failure
| -rw-r--r-- | lasso/id-ff/login.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index f98becdf..d3229a68 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -512,10 +512,14 @@ lasso_login_build_artifact_msg(LassoLogin *login, lassoHttpMethod http_method) xmlFree(b64_samlArt); xmlFree(relayState); - if (profile->session == NULL) + if (profile->session == NULL && strcmp(LASSO_SAMLP_RESPONSE( + profile->response)->Status->StatusCode->Value, + "samlp:Success") != 0) { profile->session = lasso_session_new(); - lasso_session_add_status(profile->session, profile->remote_providerID, - g_object_ref(LASSO_SAMLP_RESPONSE(profile->response)->Status)); + + lasso_session_add_status(profile->session, profile->remote_providerID, + g_object_ref(LASSO_SAMLP_RESPONSE(profile->response)->Status)); + } return ret; } @@ -748,6 +752,7 @@ lasso_login_build_response_msg(LassoLogin *login, gchar *remote_providerID) g_object_ref(assertion); lasso_profile_set_response_status(profile, LASSO_SAML_STATUS_CODE_SUCCESS); + lasso_session_remove_status(profile->session, remote_providerID); } else { LassoSamlpStatus *status; /* no assertion, get back status code */ |
