summaryrefslogtreecommitdiffstats
path: root/php/Attic/examples/sample-idp/soapEndpoint.php
diff options
context:
space:
mode:
authorChristophe Nowicki <cnowicki@easter-eggs.com>2004-09-13 12:32:31 +0000
committerChristophe Nowicki <cnowicki@easter-eggs.com>2004-09-13 12:32:31 +0000
commit8976ed87f59de26aa31ce8bc471d49614bfbe008 (patch)
treeef43a154a5a669695f5ffa5ca8a947de5ee2eac1 /php/Attic/examples/sample-idp/soapEndpoint.php
parent19663b8864a6656f9baca0120276ff7607e1fedf (diff)
downloadlasso-8976ed87f59de26aa31ce8bc471d49614bfbe008.tar.gz
lasso-8976ed87f59de26aa31ce8bc471d49614bfbe008.tar.xz
lasso-8976ed87f59de26aa31ce8bc471d49614bfbe008.zip
split source code of singleSignOn.php in many functions
added support for http basic authentification remove useless "?SID=" values
Diffstat (limited to 'php/Attic/examples/sample-idp/soapEndpoint.php')
-rw-r--r--php/Attic/examples/sample-idp/soapEndpoint.php46
1 files changed, 34 insertions, 12 deletions
diff --git a/php/Attic/examples/sample-idp/soapEndpoint.php b/php/Attic/examples/sample-idp/soapEndpoint.php
index 633aa483..f45c12de 100644
--- a/php/Attic/examples/sample-idp/soapEndpoint.php
+++ b/php/Attic/examples/sample-idp/soapEndpoint.php
@@ -116,7 +116,7 @@
$row = $res->fetchRow();
$user_id = $row[0];
- $query = "SELECT user_dump,session_dump FROM users WHERE user_id='$user_id'";
+ $query = "SELECT identity_dump,session_dump FROM users WHERE user_id='$user_id'";
$res =& $db->query($query);
if (DB::isError($res))
@@ -146,8 +146,8 @@
if ($logout->isIdentityDirty)
{
$identity = $logout->identity;
- $query = "UPDATE users SET user_dump=".$db->quoteSmart($identity->dump());
- $query .= " WHERE user_id='$user_id'";
+ $query = "UPDATE users SET identity_dump=".$db->quoteSmart($identity->dump());
+ $query .= " WHERE identity_id='$user_id'";
$res =& $db->query($query);
if (DB::isError($res))
@@ -179,15 +179,37 @@
die("Logout failed with : " . $providerID);
}
- while (!feof($fp)) {
- $reponse .= @fread($fp, 8192);
- }
-
- fclose($fp);
-
- list($header, $body) = preg_split("/(\r\n\r\n|\n\n)/", $reponse, 2);
-
- $logout->processResponseMsg($body, lassoHttpMethodSoap);
+ // header
+ do $header .= fread($fp, 1); while (!preg_match('/\\r\\n\\r\\n$/',$header));
+
+ // chunked encoding
+ if (preg_match('/Transfer\\-Encoding:\\s+chunked\\r\\n/',$header))
+ {
+ do {
+ $byte = '';
+ $chunk_size = '';
+
+ do {
+ $chunk_size .= $byte;
+ $byte = fread($fp, 1);
+ } while ($byte != "\\r");
+
+ fread($fp, 1);
+ $chunk_size = hexdec($chunk_size);
+ $response .= fread($fp, $chunk_size);
+ fread($fp, 2);
+ } while ($chunk_size);
+ }
+ else
+ {
+ if (preg_match('/Content\\-Length:\\s+([0-9]+)\\r\\n/', $header, $matches))
+ $response = fread($fp, $matches[1]);
+ else
+ while (!feof($fp)) $response .= fread($fp, 1024);
+ }
+ fclose($fp);
+
+ $logout->processResponseMsg($response, lassoHttpMethodSoap);
}
$logout->buildResponseMsg();