summaryrefslogtreecommitdiffstats
path: root/php/Attic/examples/sample-sp/assertionConsumer.php
diff options
context:
space:
mode:
authorChristophe Nowicki <cnowicki@easter-eggs.com>2004-09-17 16:02:24 +0000
committerChristophe Nowicki <cnowicki@easter-eggs.com>2004-09-17 16:02:24 +0000
commit1db82e571dd29835ee669472de1a646314e12aa9 (patch)
treea5327193d410a974e21dc27e6554420c5bec8a1b /php/Attic/examples/sample-sp/assertionConsumer.php
parentcc5bffb4bd9a1f3f057be78bfcd71db51a74dfc8 (diff)
downloadlasso-1db82e571dd29835ee669472de1a646314e12aa9.tar.gz
lasso-1db82e571dd29835ee669472de1a646314e12aa9.tar.xz
lasso-1db82e571dd29835ee669472de1a646314e12aa9.zip
log viewer for the Service Provider and the Identity Provider
added logger for in many files updated idp1 metadata, added .php extension added session viewer for the sp (you will be able to view online users)
Diffstat (limited to 'php/Attic/examples/sample-sp/assertionConsumer.php')
-rw-r--r--php/Attic/examples/sample-sp/assertionConsumer.php111
1 files changed, 79 insertions, 32 deletions
diff --git a/php/Attic/examples/sample-sp/assertionConsumer.php b/php/Attic/examples/sample-sp/assertionConsumer.php
index 7ae2c7a8..85d67556 100644
--- a/php/Attic/examples/sample-sp/assertionConsumer.php
+++ b/php/Attic/examples/sample-sp/assertionConsumer.php
@@ -22,24 +22,36 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
- $config = unserialize(file_get_contents('config.inc'));
-
+ require_once 'Log.php';
require_once 'DB.php';
+
+ $config = unserialize(file_get_contents('config.inc'));
+
if (!$_GET['SAMLart']) {
exit(1);
}
-
+
+ $db = &DB::connect($config['dsn']);
+
+ if (DB::isError($db))
+ die($db->getMessage());
+
+ // create logger
+ $conf['db'] = $db;
+ $logger = &Log::factory($config['log_handler'], 'log', $_SERVER['PHP_SELF'], $conf);
+
session_start();
lasso_init();
$server_dump = file_get_contents($config['server_dump_filename']);
- $server = LassoServer::newfromdump($server_dump);
+ $server = LassoServer::newFromDump($server_dump);
$login = new LassoLogin($server);
+ $logger->log('Request from ' . $_SERVER['REMOTE_ADDR'], PEAR_LOG_INFO);
$login->initRequest($_SERVER['QUERY_STRING'], lassoHttpMethodRedirect);
$login->buildRequestMsg();
@@ -49,6 +61,9 @@
"POST %s HTTP/1.1\r\nHost: %s:%d\r\nContent-Length: %d\r\nContent-Type: text/xml\r\n\r\n%s\r\n",
$url['path'], $url['host'], $url['port'], strlen($login->msgBody), $login->msgBody);
+ $logger->log('Send SOAP Request to '. $url['host'] . ":" .$url['port']. $url['path'], PEAR_LOG_INFO);
+ $logger->log('SOAP Request : ' . $soap, PEAR_LOG_DEBUG);
+
# PHP 4.3.0 with OpenSSL support required
$fp = fsockopen("ssl://" . $url['host'], $url['port'], $errno, $errstr, 30) or die($errstr ($errno));
socket_set_timeout($fp, 10);
@@ -78,41 +93,50 @@
else
{
if (preg_match('/Content\\-Length:\\s+([0-9]+)\\r\\n/', $header, $matches))
- $response = fread($fp, $matches[1]);
+ $response = @fread($fp, $matches[1]);
else
while (!feof($fp)) $response .= fread($fp, 1024);
}
fclose($fp);
+ $logger->log('SOAP Response Header : ' . $header, PEAR_LOG_DEBUG);
+ $logger->log('SOAP Response Body : ' . $response, PEAR_LOG_DEBUG);
+
if (!preg_match("/^HTTP\/1\\.. 200/i", $header)) {
- die("Wrong artifact");
+ $logger->log("Wrong Artifact send by " . $_SERVER['REMOTE_ADDR'], PEAR_LOG_ERR);
+ die("Wrong Artifact");
}
$login->processResponseMsg($response);
-
- $db = &DB::connect($config['dsn']);
-
- if (DB::isError($db))
- die($db->getMessage());
-
+
$query = "SELECT user_id FROM nameidentifiers WHERE name_identifier='" . $login->nameIdentifier . "'";
$res =& $db->query($query);
+ $logger->log("Name Identifier : " . $login->nameIdentifier, PEAR_LOG_DEBUG);
+
if (DB::isError($res))
- die($res->getMessage());
+ {
+ $logger->log("DB Error :" . $db->getMessage(), PEAR_LOG_CRIT);
+ $logger->log("DB Error :" . $db->getDebugInfo(), PEAR_LOG_DEBUG);
+ die($db->getMessage());
+ }
if ($res->numRows() > 0)
{
// User already exist in the database
$row =& $res->fetchRow();
- $user_id = $row[0];
+ $user_id = $row[0];
# Get Identity Dump from the data base
$query = "SELECT identity_dump FROM users WHERE user_id='$user_id'";
$res =& $db->query($query);
if (DB::isError($db))
- die($db->getMessage());
+ {
+ $logger->log("DB Error :" . $db->getMessage(), PEAR_LOG_CRIT);
+ $logger->log("DB Error :" . $db->getDebugInfo(), PEAR_LOG_DEBUG);
+ die($db->getMessage());
+ }
$row =& $res->fetchRow();
@@ -124,11 +148,13 @@
$session = $login->session;
- $_SESSION["nameidentifier"] = $login->nameIdentifier;
- $_SESSION["session_dump"] = $session->dump();
- $_SESSION["user_id"] = $user_id;
+ $_SESSION['nameidentifier'] = $login->nameIdentifier;
+ $_SESSION['session_dump'] = $session->dump();
+ $_SESSION['user_id'] = $user_id;
$url = "index.php";
+
+ $logger->log("New session started for user '$user_id'", PEAR_LOG_INFO);
}
else
{
@@ -141,30 +167,48 @@
$session = $login->session;
// Insert into users
- $identity_dump_quoted = $db->quoteSmart($identity_dump);
- $query = "INSERT INTO users (user_id,identity_dump,created) VALUES(nextval('user_id_seq'), $identity_dump_quoted, NOW())";
+ $query = "INSERT INTO users (user_id,identity_dump,created) VALUES(nextval('user_id_seq'),";
+ $query .= $db->quoteSmart($identity_dump) . ", NOW())";
+
$res =& $db->query($query);
if (DB::isError($res))
- print $res->getMessage(). "\n";
+ {
+ $logger->log("DB Error :" . $db->getMessage(), PEAR_LOG_CRIT);
+ $logger->log("DB Error :" . $db->getDebugInfo(), PEAR_LOG_DEBUG);
+ die($db->getMessage());
+ }
+
// Get UserID
$query = "SELECT last_value FROM user_id_seq";
$res =& $db->query($query);
if (DB::isError($res))
- print $res->getMessage(). "\n";
+ {
+ $logger->log("DB Error :" . $db->getMessage(), PEAR_LOG_CRIT);
+ $logger->log("DB Error :" . $db->getDebugInfo(), PEAR_LOG_DEBUG);
+ die($db->getMessage());
+ }
$row = $res->fetchRow();
$user_id = $row[0];
+ $logger->log("New user($user_id) created", PEAR_LOG_NOTICE);
+
// Insert into nameidentifiers
$query = "INSERT INTO nameidentifiers VALUES('".$login->nameIdentifier."', '$user_id')";
$res =& $db->query($query);
if (DB::isError($res))
- print $res->getMessage(). "\n";
+ {
+ $logger->log("DB Error :" . $db->getMessage(), PEAR_LOG_CRIT);
+ $logger->log("DB Error :" . $db->getDebugInfo(), PEAR_LOG_DEBUG);
+ die($db->getMessage());
+ }
+
+ $_SESSION['nameidentifier'] = $login->nameIdentifier;
+ $_SESSION['session_dump'] = $session->dump();
+ $_SESSION['user_id'] = $user_id;
- $_SESSION["nameidentifier"] = $login->nameIdentifier;
- $_SESSION["session_dump"] = $session->dump();
- $_SESSION["user_id"] = $user_id;
+ $logger->log("New session started for user '$user_id', redirect to the registration form", PEAR_LOG_INFO);
$url = "register.php";
}
@@ -173,14 +217,17 @@
$query = "UPDATE users SET last_login=NOW() WHERE user_id='$user_id'";
$res =& $db->query($query);
if (DB::isError($res))
- print $res->getMessage(). "\n";
-
- $db->disconnect();
-
- lasso_shutdown();
+ {
+ $logger->log("DB Error :" . $db->getMessage(), PEAR_LOG_CRIT);
+ $logger->log("DB Error :" . $db->getDebugInfo(), PEAR_LOG_DEBUG);
+ die($db->getMessage());
+ }
+ $logger->log("Update last login for user '$user_id'", PEAR_LOG_INFO);
header("Request-URI: $url");
header("Content-Location: $url");
- header("Location: $urln\n\n");
+ header("Location: $url\n\n");
+ $db->disconnect();
+ lasso_shutdown();
exit();
?>