| 
<?php
 /* Find the authentication state. */
 if (!array_key_exists('AuthState', $_REQUEST) || empty($_REQUEST['AuthState'])) {
 throw new SimpleSAML_Error_BadRequest('Missing mandatory parameter: AuthState');
 }
 
 $authState = $_REQUEST['AuthState'];
 
 // sanitize the input
 $sid = SimpleSAML_Utilities::parseStateID($authState);
 if (!is_null($sid['url'])) {
 SimpleSAML_Utilities::checkURLAllowed($sid['url']);
 }
 
 $state = SimpleSAML_Auth_State::loadState($authState, 'openid:init');
 $sourceId = $state['openid:AuthId'];
 $authSource = SimpleSAML_Auth_Source::getById($sourceId);
 if ($authSource === NULL) {
 throw new SimpleSAML_Error_BadRequest('Invalid AuthId \'' . $sourceId . '\' - not found.');
 }
 
 $error = NULL;
 try {
 if (!empty($_GET['openid_url'])) {
 $authSource->doAuth($state, (string)$_GET['openid_url']);
 }
 } catch (Exception $e) {
 $error = $e->getMessage();
 }
 
 $config = SimpleSAML_Configuration::getInstance();
 $t = new SimpleSAML_XHTML_Template($config, 'openid:consumer.php', 'openid');
 $t->data['error'] = $error;
 $t->data['AuthState'] = $authState;
 $t->show();
 
 |