diff options
| author | Christophe Nowicki <cnowicki@easter-eggs.com> | 2004-09-01 15:01:59 +0000 |
|---|---|---|
| committer | Christophe Nowicki <cnowicki@easter-eggs.com> | 2004-09-01 15:01:59 +0000 |
| commit | 2f842992283f7cf71f3c7b2159e6eda61ec202e2 (patch) | |
| tree | 420e33d7ba6ca024b54edfb6727fc903cba51151 /php | |
| parent | 6b6ba1f14de9c00d4530041871dae58b368480a3 (diff) | |
| download | lasso-2f842992283f7cf71f3c7b2159e6eda61ec202e2.tar.gz lasso-2f842992283f7cf71f3c7b2159e6eda61ec202e2.tar.xz lasso-2f842992283f7cf71f3c7b2159e6eda61ec202e2.zip | |
PHP IdP Sample :
- setup system is working
- user management (add, delete, etc ...)
- sso login in progress
Diffstat (limited to 'php')
| -rw-r--r-- | php/Attic/examples/sample-idp/README | 1 | ||||
| -rw-r--r-- | php/Attic/examples/sample-idp/admin_user.php | 190 | ||||
| -rw-r--r-- | php/Attic/examples/sample-idp/index.php | 100 | ||||
| -rw-r--r-- | php/Attic/examples/sample-idp/login.php | 47 | ||||
| -rw-r--r-- | php/Attic/examples/sample-idp/setup.php | 478 | ||||
| -rw-r--r-- | php/Attic/examples/sample-idp/singleSignOn.php | 56 | ||||
| -rw-r--r-- | php/Attic/examples/sample-idp/soapEndpoint.php | 25 | ||||
| -rw-r--r-- | php/Attic/examples/sample-idp/user_add.php | 77 |
8 files changed, 974 insertions, 0 deletions
diff --git a/php/Attic/examples/sample-idp/README b/php/Attic/examples/sample-idp/README new file mode 100644 index 00000000..a78f9817 --- /dev/null +++ b/php/Attic/examples/sample-idp/README @@ -0,0 +1 @@ +TODO ;0) diff --git a/php/Attic/examples/sample-idp/admin_user.php b/php/Attic/examples/sample-idp/admin_user.php new file mode 100644 index 00000000..a08d8187 --- /dev/null +++ b/php/Attic/examples/sample-idp/admin_user.php @@ -0,0 +1,190 @@ +<?php +/* + * Identity Provider Example -- User Administration + * + * Copyright (C) 2004 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: Christophe Nowicki <cnowicki@easter-eggs.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + $config = unserialize(file_get_contents('config.inc')); + + require_once 'DB.php'; + + $db = &DB::connect($config['dsn']); + + if (DB::isError($db)) + die($db->getMessage()); + + if (!empty($_GET['dump'])) + { + $query = "SELECT identity_dump FROM users WHERE user_id='" . $_GET['dump'] . "'"; + $res =& $db->query($query); + if (DB::isError($res)) + print $res->getMessage(). "\n"; + $row = $res->fetchRow(); +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> +<body> +<table> +<caption>Identity Dump</caption> +<tr> + <td> + <textarea rows="15" cols="50"><?php echo htmlentities($row[0], ENT_QUOTES); ?></textarea> + </td> +</tr> +<tr> +<td align="center"><a href="javascript:window.close(self)">Close</a></td> +</tr> +</table> +</body> +</html> +<?php + exit; + } + + + if (!empty($_GET['del'])) { + + $query = "DELETE FROM nameidentifiers WHERE user_id='" . $_GET['del'] . "'" ; + $res =& $db->query($query); + if (DB::isError($res)) + print $res->getMessage(). "\n"; + + $query = "DELETE FROM users WHERE user_id='" . $_GET['del'] . "'" ; + $res =& $db->query($query); + if (DB::isError($res)) + print $res->getMessage(). "\n"; + + } + + + $query = "SELECT * FROM users"; + $res =& $db->query($query); + if (DB::isError($res)) + print $res->getMessage(). "\n"; +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> +<head> +<title>Lasso Service Provider Example : Users Management</title> +<script language="JavaScript" type="text/javascript"> +<!-- + + function openpopup(popurl) + { + var winpops=window.open(popurl,"","width=400,height=300") + } + + function ToggleAll() + { + for (var i = 0; i < document.frm.elements.length; i++) + { + if(document.frm.elements[i].type == 'checkbox') + document.frm.elements[i].checked = !(document.frm.elements[i].checked); + } + } + +//--> +</script> +</head> + +<body> +<form name='frm' method=> +<table border="1" align="center"> +<caption>Users</caption> +<?php + $num_col = $res->numCols(); + $tableinfo = $db->tableInfo($res); +?> +<thead> +<tr> + <td colspan='<?php echo $num_col + 1; ?>'>Previous | Next | Show All | <a href="javascript:void(0)" onClick="ToggleAll();">Toggle All</a></td> + <td align='right'><a href="javascript:openpopup('user_add.php')">add user</a></td> +</tr> +<tr align="center"> +<td> </td> +<?php + for ($i = 0; $i < $num_col; $i++) { + echo "<td>" . $tableinfo[$i]['name'] ."</td>"; + } +?> +<td> </td> +</tr> +</thead> +<tbody> +<?php + while ($row =& $res->fetchRow()) { +?> +<tr align="center"> +<td> + <input type='checkbox' name='uid' value='<?php $row[0]; ?>'> +</td> +<?php + for ($i = 0; $i < $num_col; $i++) + { + ?> + <td> + <?php + switch ($tableinfo[$i]['name']) + { + case "identity_dump": + echo "<a href=javascript:openpopup('". $PHP_SELF . '?dump=' . $row[0] . "')>view</a>"; + break; + + default: + echo (empty($row[$i])) ? " " : $row[$i]; + } + ?> + </td> + <?php + } + ?> + <td> + <a href="<?php echo $PHP_SELF . '?del=' . $row[0]; ?>">delete</a> + </td> +</tr> +<?php +} +?> +</tbody> +<tfoot> +<tr> + <td colspan="<?php echo $num_col + 1; ?>"> </td> + <td>Total: <?php echo $res->numRows();?> Users</td> +</tr> +</tfoot> +</table> +</form> + +<br> +<p align='center'><a href='index.php'>Index</a> +</p> + +<br> +<p>Copyright © 2004 Entr'ouvert</p> + +</body> + +</html> +<?php + $db->disconnect(); +?> diff --git a/php/Attic/examples/sample-idp/index.php b/php/Attic/examples/sample-idp/index.php new file mode 100644 index 00000000..d5fe963d --- /dev/null +++ b/php/Attic/examples/sample-idp/index.php @@ -0,0 +1,100 @@ +<?php +/* + * Identity Provider Example -- Index File + * + * Copyright (C) 2004 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: Christophe Nowicki <cnowicki@easter-eggs.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + if(!extension_loaded('lasso')) { + $ret = @dl('lasso.' . PHP_SHLIB_SUFFIX); + if ($ret == FALSE) + { +?> +<p align='center'><b>The Lasso Extension is not available</b><br> +Please check your PHP extensions<br> +You can get more informations about <b>Lasso</b> at <br> +<a href='http://lasso.entrouvert.org/'>http://lasso.entrouvert.org/</a></p> +<?php + exit(); + } + } + + if (!file_exists('config.inc')) + { +?> +<p align='center'><b>Identity Provider Configuration file is not available</b><br> +Please run the setup script :<br> +<a href='setup.php'>Lasso Service Provider Setup</a><br> +You can get more informations about <b>Lasso</b> at <br> +<a href='http://lasso.entrouvert.org/'>http://lasso.entrouvert.org/</a></p> +<?php + exit(); + } + + $config = unserialize(file_get_contents('config.inc')); + + require_once 'DB.php'; + + if (!empty($_GET['SID'])) + session_start($_GET['SID']); + else + session_start(); + + lasso_init(); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> +<head> +<title>Lasso Service Provider Example</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> +</head> + +<body> +<p> +<table border="1" frame="above"> +<tr> + <td><b>Identity Provider Administration</b></td> +</tr> +<tr> + <td><a href="setup.php">Setup</a></td> +</tr> +<tr> + <td><a href="admin_user.php">Users Management</a></td> +</tr> +<tr> + <td><b>Identity Provider Fonctionnality</b></td> +</tr> +<tr> + <td><a href="login.php">Login</a></td> +</tr> +</table> +</p> +<!-- <p>Lasso Version : <?php // echo lasso_version(); ?></p> --> + +<br> +<p>Copyright © 2004 Entr'ouvert</p> + +</body> + +</html> +<?php + lasso_shutdown(); + ?> diff --git a/php/Attic/examples/sample-idp/login.php b/php/Attic/examples/sample-idp/login.php new file mode 100644 index 00000000..f8f7fbca --- /dev/null +++ b/php/Attic/examples/sample-idp/login.php @@ -0,0 +1,47 @@ +<?php +/* + * Identity Provider Example -- Local Login + * + * Copyright (C) 2004 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: Christophe Nowicki <cnowicki@easter-eggs.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + $config = unserialize(file_get_contents('config.inc')); + + require_once 'DB.php'; + require_once 'HTML/QuickForm.php'; + + $form = new HTML_QuickForm('frm'); + + $form->addElement('header', null, 'Login on the Lasso Identity Provider Example'); + $form->addElement('text', 'username', 'Username:', array('size' => 50, 'maxlength' => 255)); + $form->addElement('password', 'password', 'Password:', array('size' => 50, 'maxlength' => 255)); + $form->addElement('submit', null, 'Ok'); + + $form->addRule('username', 'Please enter the Username', 'required', null, 'client'); + $form->addRule('password', 'Please enter the Password', 'required', null, 'client'); +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> +<body> +<?php + $form->display(); +?> +</body> +</html> diff --git a/php/Attic/examples/sample-idp/setup.php b/php/Attic/examples/sample-idp/setup.php new file mode 100644 index 00000000..306aa854 --- /dev/null +++ b/php/Attic/examples/sample-idp/setup.php @@ -0,0 +1,478 @@ +<?php +/* + * + * Identity Provider Example -- Setup + * + * Copyright (C) 2004 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: Christophe Nowicki <cnowicki@easter-eggs.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<?php + if(!extension_loaded('lasso')) { + $ret = @dl('lasso.' . PHP_SHLIB_SUFFIX); + if ($ret == FALSE) + { + print "<p align='center'><b>The Lasso Extension is not available</b><br>"; + print "Please check your PHP extensions<br>"; + print "You can get more informations about <b>Lasso</b> at <br>"; + print "<a href='http://lasso.entrouvert.org/'>http://lasso.entrouvert.org/</a></p>"; + exit(); + } + } + + /* + * This callback function is called by array_walk and + * add an service provider to the identity provider. + */ + function add_service_provider(&$item, $key, $server) + { + print "<br>$key : "; + + $ret = $server->addProvider($item['metadata'], $item['public_key'], $item['ca']); + + /*if ($ret != TRUE) + { + print "Failed"; + break; + } + else */ + print "OK"; + } + + function write_config_inc($config) + { + $config_ser = serialize($config); + $filename = "config.inc"; + + if ($fd = fopen($filename, "w")) + { + fwrite($fd, $config_ser); + fclose($fd); + return TRUE; + } + return FALSE; + } + + require_once 'DB.php'; + + # default config + if (!file_exists('config.inc')) + { + $cwd = getcwd(); + $config = array( + 'dsn' => "pgsql://idp:idp@localhost/idp", + 'server_dump_filename' => "lasso_server_dump.xml", + 'idp-metadata' => "/home/cnowicki/mcvs/lasso/tests/data/idp1-la/metadata.xml", + 'idp-public_key' => "/home/cnowicki/mcvs/lasso/tests/data/idp1-la/public-key.pem", + 'idp-private_key' => "/home/cnowicki/mcvs/lasso/tests/data/idp1-la/private-key-raw.pem", + 'idp-ca' => "/home/cnowicki/mcvs/lasso/tests/data/idp1-la/certificate.pem", + 'sp' => array( + 'sp1' => array( + 'metadata' => "/home/cnowicki/mcvs/lasso/tests/data/sp1-la/metadata.xml", + 'public_key' => "/home/cnowicki/mcvs/lasso/tests/data/sp1-la/public-key.pem", + 'ca' => "/home/cnowicki/mcvs/lasso/tests/data/ca1-la/certificate.pem"), + 'sp2' => array( + 'metadata' => "/home/cnowicki/mcvs/lasso/tests/data/sp2-la/metadata.xml", + 'public_key' => "/home/cnowicki/mcvs/lasso/tests/data/sp2-la/public-key.pem", + 'ca' => "/home/cnowicki/mcvs/lasso/tests/data/ca1-la/certificate.pem") + )); + + $config_ser = serialize($config); + + if (!write_config_inc($config)) + die("Could not write default config file"); + } + else + { + $config = unserialize(file_get_contents('config.inc')); + } + + $keys = array_keys($_POST); + + $to_del = preg_grep('/delete_(\w)/', $keys); + + if (!empty($to_del)) + { + $keys = array_values($to_del); + foreach($keys as $key) + { + $name = substr($key, 7); + unset($config['sp'][$name]); + write_config_inc($config); + } + } + + $to_update = preg_grep('/update_(\w)/', $keys); + + if (!empty($to_update)) + { + $keys = array_values($to_update); + foreach($keys as $key) + { + $name = substr($key, 7); + $config['sp'][$name]['metadata'] = $_POST['sp^'.$name.'^metadata']; + $config['sp'][$name]['public_key'] = $_POST['sp^'.$name.'^public_key']; + $config['sp'][$name]['ca'] = $_POST['sp^'.$name.'^ca']; + write_config_inc($config); + } + } + + + if (array_key_exists('new', $_POST)) + { + $form = array('sp' => 'Name', + 'metadata' => 'Metadata', + 'public_key' => 'Public Key', + 'ca' => 'Certificate'); + + foreach ($form as $input => $name) + if (empty($_POST[$input])) + die("Field <b>$name</b> is empty"); + + $config['sp'][$_POST['sp']] = array( + 'metadata' => $_POST['metadata'], + 'public_key' => $_POST['public_key'], + 'ca' => $_POST['ca']); + + write_config_inc($config); + } + + if (array_key_exists('setup', $_POST)) + { + ob_start(); + + $setup = FALSE; + + print "<b>Lasso Identity Provider Setup</b><br>"; + + unset($_POST['setup'], $_POST['metadata'], $_POST['public_key'], $_POST['ca'], $_POST['sp']); + + $sps = array_values(preg_grep("/sp\^/", array_keys($_POST))); + + + $_POST['sp'] = array(); + + foreach ($sps as $sp) { + list($null, $name, $type) = split("\^", $sp, 3); + $_POST['sp'][$name][$type] = $_POST[$sp]; + unset($_POST[$sp]); + } + + $diff = array_diff($_POST, $config); + + foreach($diff as $key => $value) { + $config[$key] = $value; + } + + print "Check Data base : "; + + $db = &DB::connect($config['dsn']); + + if (DB::isError($db)) { + die("Failed (" . $db->getMessage() . ")"); + } + else + print "OK"; + + print "<br>Create sequence 'user_id_seq' : "; + + $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 "<br>Create table 'users' : "; + $query = "DROP TABLE users CASCADE"; + $res =& $db->query($query); + + $query = "CREATE TABLE users ( + user_id varchar(100) primary key, + username varchar(255), + password varchar(255), + user_dump text, + session_dump text)"; + $res =& $db->query($query); + if (DB::isError($res)) + die($res->getMessage()); + + print "OK"; + + print "<br>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"; + + print "<br>Create table 'assertions' : "; + $query = "DROP TABLE assertions CASCADE"; + $res =& $db->query($query); + + $query = "CREATE TABLE assertions ( + assertion text, + response_dump text)"; + + $res =& $db->query($query); + if (DB::isError($res)) + die($res->getMessage()); + + print "OK"; + + $db->disconnect(); + + // Check if IdP files does exists + + $keys = array_keys($config); + $files = preg_grep("/idp/", $keys); + + foreach($files as $file) + { + print "<br>Check file " . $config[$file] . " : "; + if (!file_exists($config[$file])) + { + die("Failed (file does not exist)"); + } + else + print "OK"; + } + + + foreach($config['sp'] as $key) + { + foreach ($key as $file) + { + print "<br>Check file " . $file . " : "; + if (!file_exists($file)) + { + die("Failed (file does not exist)"); + } + else + print "OK"; + + } + } + + lasso_init(); + + print "<br>Create Server : "; + + $server = new LassoServer($config['idp-metadata'], + $config['idp-public_key'], $config['idp-private_key'], + $config['idp-ca'], lassoSignatureMethodRsaSha1); + + if (empty($server)) + { + die("Failed"); + } + else + print "OK"; + + + print "<br>Add Service Provider(s) :"; + + array_walk($config['sp'], 'add_service_provider', $server); + + print "<br>Write XML Server Dump : "; + + $dump = $server->dump(); + + if (($fd = fopen($config['server_dump_filename'], "w"))) + { + fwrite($fd, $dump); + fclose($fd); + print "OK"; + } + else + die("Failed"); + + lasso_shutdown(); + + print "<br>Save configuration file : "; + + + # Save configuration file + $config_ser = serialize($config); + if (($fd = fopen("config.inc", "w"))) + { + fwrite($fd, $config_ser); + fclose($fd); + print "OK"; + } + else + { + print("Failed"); + break; + } + $setup = TRUE; + } + ob_start(); +?> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> +<head> +<title>Setup script for Lasso (Liberty Alliance Single Sign On)</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> +<?php + if ($setup == TRUE) { +?> +<meta http-equiv="Refresh" CONTENT="3; URL=index.php"> +<?php } ?> +</head> +<body> +<?php + ob_end_flush(); + ob_end_flush(); + ?> +</body> +</html> +<?php + if (empty($setup)) + { +?> + +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> +<head> +<title>Setup script for Lasso (Liberty Alliance Single Sign On)</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> +</head> +<body> +<form name='frm' action='<?php echo $PHP_SELF ?>' method='POST'> + +<p align='center'>Lasso Identity Provider Setup</p> +<p> +<table> +<caption>Database Configuration</caption> +<tr> + <td>DSN (Data Source Name) :</td><td><input type='text' name='dsn' size='50' value='<?php echo $config['dsn']; ?>' maxlength='100'></td><td><a href='http://pear.php.net/manual/en/package.database.db.intro-dsn.php' target='_new'>Help</a></td> +</tr> +<tr> + <td>Server XML Dump:</td><td><input type='text' name='server_dump_filename' size='50' value='<?php echo $config['server_dump_filename']; ?>' maxlength='100'></td><td> </td> +</tr> +</table> +</p> +<hr> +<p> +<table> +<caption>Identity Provider</caption> + +<tr> + <td>Metadata</td><td><input type='text' name='idp-metadata' size='50' value='<?php echo $config['idp-metadata']; ?>'></td><td> </td> + +</tr> + +<tr> + <td>Public Key</td><td><input type='text' name='idp-public_key' size='50' value='<?php echo $config['idp-public_key']; ?>'></td><td> </td> + +</tr> + +<tr> + <td>Private Key</td><td><input type='text' name='idp-private_key' size='50' value='<?php echo $config['idp-private_key']; ?>'></td><td> </td> + +</tr> + +<tr> + <td>Certificate</td><td><input type='text' name='idp-ca' size='50' value='<?php echo $config['idp-ca']; ?>'></td><td> </td> +</tr> +</table> +</p> + +<hr> +<?php + foreach ($config['sp'] as $sp => $name) + { +?> +<table> +<caption>Service Provider <b><?php echo $sp ?></caption> + +<tr> + <td>Metadata</td><td><input type='text' name='sp^<?php echo $sp; ?>^metadata' size='50' value='<?php echo $config['sp'][$sp]['metadata']; ?>'></td><td> </td> + +</tr> +<tr> + <td>Public Key</td><td><input type='text' name='sp^<?php echo $sp; ?>^public_key' size='50' value='<?php echo $config['sp'][$sp]['public_key']; ?>'></td><td> </td> + +</tr> +<tr> + <td>Certificate</td><td><input type='text' name='sp^<?php echo $sp; ?>^ca' size='50' value='<?php echo $config['sp'][$sp]['ca']; ?>'></td><td> </td> +</tr> + +<tr> + <td colspan='3' align='center'> + <input type='submit' name='update_<?php echo $sp; ?>' value='save / update'> + <input type='submit' name='delete_<?php echo $sp; ?>' value='delete'> + </td> +</tr> +</table> + +<?php + } +?> +</p> + +<p> +<table> +<caption>Add a new Service Provider</caption> + +<tr> + <td>Name</td><td><input type='text' name='sp' size='50'></td><td> </td> +</tr> + +<tr> + <td>Metadata</td><td><input type='text' name='metadata' size='50'></td><td> </td> +</tr> + +<tr> + <td>Public Key</td><td><input type='text' name='public_key' size='50'></td><td> </td> +</tr> + +<tr> + <td>Certificate</td><td><input type='text' name='ca' size='50'></td><td> </td> +</tr> + +<tr> + <td colspan='3' align='center'> + <input type='submit' name='new' value='save / update'> + </td> +</tr> +</fieldset> +</table> +</p> +<hr> +<p> + <input type='submit' name='setup' value='setup'> +</p> +</form> +</body> +</html> +<?php + } +?> diff --git a/php/Attic/examples/sample-idp/singleSignOn.php b/php/Attic/examples/sample-idp/singleSignOn.php new file mode 100644 index 00000000..5143f9c0 --- /dev/null +++ b/php/Attic/examples/sample-idp/singleSignOn.php @@ -0,0 +1,56 @@ +<?php +/* + * + * Identity Provider Example -- Setup + * + * Copyright (C) 2004 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: Christophe Nowicki <cnowicki@easter-eggs.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + if (empty($_POST) && empty($_GET)) + { + die("Unknow login methode!"); + } + $methode = empty($_POST) ? 'GET' : 'POST'; + + $config = unserialize(file_get_contents('config.inc')); + + lasso_init(); + + $server_dump = file_get_contents($config['server_dump_filename']); + + $server = LassoServer::newfromdump($server_dump); + + $login = new LassoLogin($server); + + if ($methode = 'GET') + { + print $_SERVER['QUERY_STRING']; + $login->initFromAuthnRequestMsg($_SERVER['QUERY_STRING'], lassoHttpMethodRedirect); + print "ici"; + } + else + { + // TODO + } + + + //echo $methode; + //echo $_SERVER['QUERY_STRING']; +?> diff --git a/php/Attic/examples/sample-idp/soapEndpoint.php b/php/Attic/examples/sample-idp/soapEndpoint.php new file mode 100644 index 00000000..11cfd52b --- /dev/null +++ b/php/Attic/examples/sample-idp/soapEndpoint.php @@ -0,0 +1,25 @@ +<?php +/* + * + * Identity Provider Example -- SOAP Endpoint + * + * Copyright (C) 2004 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: Christophe Nowicki <cnowicki@easter-eggs.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +?> diff --git a/php/Attic/examples/sample-idp/user_add.php b/php/Attic/examples/sample-idp/user_add.php new file mode 100644 index 00000000..1ef3cdb3 --- /dev/null +++ b/php/Attic/examples/sample-idp/user_add.php @@ -0,0 +1,77 @@ +<?php +/* + * Service Provider Example -- User Administration + * + * Copyright (C) 2004 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: Christophe Nowicki <cnowicki@easter-eggs.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +?> +<?php + require_once 'HTML/QuickForm.php'; + require_once 'DB.php'; + + $form = new HTML_QuickForm('frm'); + + $form->addElement('header', null, 'Add New User'); + $form->addElement('text', 'username', 'Username:', array('size' => 50, 'maxlength' => 255)); + $form->addElement('text', 'password', 'Password:', array('size' => 50, 'maxlength' => 255)); + $form->addElement('submit', null, 'Create'); + + $form->addRule('username', 'Please enter the Username', 'required', null, 'client'); + $form->addRule('password', 'Please enter the Password', 'required', null, 'client'); + + if ($form->validate()) { + + $config = unserialize(file_get_contents('config.inc')); + + $db = &DB::connect($config['dsn']); + if (DB::isError($db)) + die($db->getMessage()); + + $query = "INSERT INTO users (user_id, username, password) VALUES(nextval('user_id_seq'),'"; + $query .= $form->exportValue('username') . "','" . $form->exportValue('password') . "')"; + + $res =& $db->query($query); + if (DB::isError($db)) + die($db->getMessage()); + + $db->disconnect(); +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> +<head> +<body onLoad="window.close()"> +</body> +</html> +<?php + exit; + } +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> +<body> +<?php + $form->display(); +?> +</body> +</html> |
