From e7951664512e6fb7471250a34cf4ca759602f3b3 Mon Sep 17 00:00:00 2001 From: Christophe Nowicki Date: Thu, 19 Aug 2004 15:56:23 +0000 Subject: Setup PHP Interface in progress ;0) --- php/Attic/examples/sample-sp/setup.php | 268 +++++++++++++++++++++------------ 1 file changed, 172 insertions(+), 96 deletions(-) (limited to 'php/Attic/examples/sample-sp/setup.php') diff --git a/php/Attic/examples/sample-sp/setup.php b/php/Attic/examples/sample-sp/setup.php index 2f3540ee..e475d74a 100644 --- a/php/Attic/examples/sample-sp/setup.php +++ b/php/Attic/examples/sample-sp/setup.php @@ -23,108 +23,184 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - include "config.php.inc"; + if(!extension_loaded('lasso')) { + $ret = @dl('lasso.' . PHP_SHLIB_SUFFIX); + if ($ret == FALSE) + { + print "

The Lasso Extension is not available
"; + print "Please check your PHP extensions
"; + print "You can get more informations about Lasso at
"; + print "http://lasso.entrouvert.org/

"; + exit(); + } + } require_once 'DB.php'; - print "Setup script for L.A.S.S.O (Liberty Alliance Single Sign On)\n"; + $config = unserialize(file_get_contents('config.inc')); - lasso_init(); - print "$server_dump_filename: "; + switch($_POST['action']) + { + case 'setup' : + print "Lasso Service Provider Setup
"; + unset($_POST['action']); - # Create XML Server Dump - if (file_exists($server_dump_filename)) - { - print "file already exists.\n"; - } - else - { - $server = lasso_server_new( - "/home/cnowicki/mcvs/lasso/tests/data/sp1-la/metadata.xml", - "/home/cnowicki/mcvs/lasso/tests/data/sp1-la/public-key.pem", - "/home/cnowicki/mcvs/lasso/tests/data/sp1-la/private-key-raw.pem", - "/home/cnowicki/mcvs/lasso/tests/data/sp1-la/certificate.pem", - lassoSignatureMethodRsaSha1); - - lasso_server_add_provider($server, - "/home/cnowicki/mcvs/lasso/tests/data/idp1-la/metadata.xml", - "/home/cnowicki/mcvs/lasso/tests/data/idp1-la/public-key.pem", - "/home/cnowicki/mcvs/lasso/tests/data/ca1-la/certificate.pem" - ); - - $dump = lasso_server_dump($server); - $fd = fopen($server_dump_filename, "w"); - fwrite($fd, $dump); - print "wrote.\n"; - fclose($fd); - } + $diff = array_diff($_POST, $config); + + foreach($diff as $key => $value) { + $config[$key] = $value; + } + + print "Check Data base : "; - print "Create User Database.\n"; - print "DSN : $dsn\n"; - - $options = array( - 'debug' => 2, - ); - - $db = &DB::connect($dsn, $options); - if (DB::isError($db)) { - die($db->getMessage()); - } - - - # Drop user_id_seq - print "DROP user_id_seq.\n"; - $query = "DROP SEQUENCE user_id_seq"; - $res =& $db->query($query); - if (DB::isError($res)) - die($res->getMessage()); - - - # Create user_id_seq - print "Create user_id_seq Sequence.\n"; - $query = "CREATE SEQUENCE user_id_seq"; - $res =& $db->query($query); - if (DB::isError($res)) - die($res->getMessage()); - - /* print "DROP users.\n"; - $query = "DROP TABLE users CASCADE"; - $res =& $db->query($query); - if (DB::isError($res)) - die($res->getMessage()); */ - - # Create local data base - print "Create users Table.\n"; - $query = "CREATE TABLE users ( - user_id varchar(100) primary key, - identity_dump text, - first_name varchar(50), - last_name varchar(50), - created timestamp)"; - $res =& $db->query($query); - if (DB::isError($res)) - die($res->getMessage()); + $db = &DB::connect($config['dsn']); + + if (DB::isError($db)) { + die("Failed (" . $db->getMessage() . ")"); + } + else + print "OK"; + + print "
Create sequence 'user_id_seq' : "; - /* print "DROP nameidentifiers.\n"; - $query = "DROP TABLE nameidentifiers"; - - $res =& $db->query($query); */ - - if (DB::isError($res)) - die($res->getMessage()); - - print "Create nameidentifiers Table.\n"; - $query = "CREATE TABLE nameidentifiers ( - name_identifier varchar(100) primary key, - user_id varchar(100), - FOREIGN KEY (user_id) REFERENCES users (user_id))"; - $res =& $db->query($query); - if (DB::isError($res)) - die($res->getMessage()); - - - $db->disconnect(); - - lasso_shutdown(); + $query = "DROP SEQUENCE user_id_seq"; + $res =& $db->query($query); + + $query = "CREATE SEQUENCE user_id_seq"; + $res =& $db->query($query); + if (DB::isError($res)) + die($res->getMessage()); + + print "OK"; + + print "
Create table 'users' : "; + $query = "DROP TABLE users CASCADE"; + $res =& $db->query($query); + + $query = "CREATE TABLE users ( + user_id varchar(100) primary key, + identity_dump text, + first_name varchar(50), + last_name varchar(50), + created timestamp)"; + $res =& $db->query($query); + if (DB::isError($res)) + die($res->getMessage()); + + print "OK"; + + print "
Create table 'nameidentifiers' : "; + + $query = "DROP TABLE nameidentifiers CASCADE"; + $res =& $db->query($query); + + $query = "CREATE TABLE nameidentifiers ( + name_identifier varchar(100) primary key, + user_id varchar(100), + FOREIGN KEY (user_id) REFERENCES users (user_id))"; + $res =& $db->query($query); + if (DB::isError($res)) + die($res->getMessage()); + + print "OK"; + + $db->disconnect(); + + $keys = array_keys($config); + $files = preg_grep("/(sp|idp)/", $keys); + + foreach($files as $file) + { + print "
Check file " . $config[$file] . " : "; + if (!file_exists($config[$file])) + { + die("Failed (file does not exist)"); + } + else + print "OK"; + } + + lasso_init(); + + print "
Create Server : "; + + $server = lasso_server_new( + $config['sp-metadata'], $config['sp-public_key'], + $config['sp-private_key'], $config['sp-ca'], lassoSignatureMethodRsaSha1); + + if (empty($server)) + { + print "Failed"; + break; + } + else + print "OK"; + + print "
Add provider : "; + + $ret = lasso_server_add_provider($server, + $config['idp-metadata'], $config['idp-public_key'], $config['idp-ca']); + + /*if ($ret != TRUE) + { + print "Failed"; + break; + } + else */ + print "OK"; + + print "
Write XML Server Dump : "; + + $dump = lasso_server_dump($server); + + if (($fd = fopen($config['server_dump_filename'], "w"))) + { + fwrite($fd, $dump); + fclose($fd); + print "OK"; + } + else + print "Failed"; + + lasso_shutdown(); + + # Save configuration file + $config_ser = serialize($config); + if (($fd = fopen("config.inc", "w"))) + { + fwrite($fd, $config_ser); + fclose($fd); + } + + break; + default: +?> + + + + +Setup script for Lasso (Liberty Alliance Single Sign On) + + + +
+ + + + + + + + + + + + +
Lasso Service Provider Setup
DSN:' maxlength='100'>
Server XML Dump:' maxlength='100'>
+
+ + + -- cgit