diff options
| author | Christophe Nowicki <cnowicki@easter-eggs.com> | 2004-09-17 16:02:24 +0000 |
|---|---|---|
| committer | Christophe Nowicki <cnowicki@easter-eggs.com> | 2004-09-17 16:02:24 +0000 |
| commit | 1db82e571dd29835ee669472de1a646314e12aa9 (patch) | |
| tree | a5327193d410a974e21dc27e6554420c5bec8a1b /php/Attic/examples/sample-sp/assertionConsumer.php | |
| parent | cc5bffb4bd9a1f3f057be78bfcd71db51a74dfc8 (diff) | |
| download | lasso-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.php | 111 |
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(); ?> |
