summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2006-11-30 17:59:50 +0000
committerFrederic Peters <fpeters@entrouvert.com>2006-11-30 17:59:50 +0000
commit818de5a5347933ce9549f45e698da2192da765d1 (patch)
tree980cdeaed1d6c0a11ecdc66eb89c86e6e4e0eeda
parent01fda42b98b0fb793613f55d7966ea150975a879 (diff)
downloadlasso-818de5a5347933ce9549f45e698da2192da765d1.tar.gz
lasso-818de5a5347933ce9549f45e698da2192da765d1.tar.xz
lasso-818de5a5347933ce9549f45e698da2192da765d1.zip
only call into lasso_saml20_login_process_paos_response_msg if PAOS namespace
is visible; this avoids parsing three times the same message for the common case of *not* PAOS.
-rw-r--r--lasso/saml-2.0/login.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/lasso/saml-2.0/login.c b/lasso/saml-2.0/login.c
index f1dcb7e0..36a83619 100644
--- a/lasso/saml-2.0/login.c
+++ b/lasso/saml-2.0/login.c
@@ -905,10 +905,14 @@ lasso_saml20_login_process_response_msg(LassoLogin *login, gchar *response_msg)
LassoProfile *profile = LASSO_PROFILE(login);
int rc;
- rc = lasso_saml20_login_process_paos_response_msg(login, response_msg);
- if (rc == 0) {
- return lasso_saml20_login_process_response_status_and_assertion(login);
+ if (strstr(response_msg, LASSO_PAOS_HREF)) {
+ rc = lasso_saml20_login_process_paos_response_msg(login, response_msg);
+ if (rc == 0) {
+ return lasso_saml20_login_process_response_status_and_assertion(login);
+ }
+ return rc;
}
+
rc = lasso_saml20_profile_process_artifact_response(profile, response_msg);
if (rc) {
return rc;