diff options
| author | Christophe Nowicki <cnowicki@easter-eggs.com> | 2004-09-13 12:32:31 +0000 |
|---|---|---|
| committer | Christophe Nowicki <cnowicki@easter-eggs.com> | 2004-09-13 12:32:31 +0000 |
| commit | 8976ed87f59de26aa31ce8bc471d49614bfbe008 (patch) | |
| tree | ef43a154a5a669695f5ffa5ca8a947de5ee2eac1 /php/Attic/examples/sample-idp/soapEndpoint.php | |
| parent | 19663b8864a6656f9baca0120276ff7607e1fedf (diff) | |
| download | lasso-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.php | 46 |
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(); |
