PHP Classes

File: web/SSO/modules/core/www/postredirect.php

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/SSO/modules/core/www/postredirect.php   Download  
File: web/SSO/modules/core/www/postredirect.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 1,496 bytes
 

Contents

Class file image Download
<?php

/**
 * This page provides a way to create a redirect to a POST request.
 *
 * @package simpleSAMLphp
 */

if (array_key_exists('RedirId', $_REQUEST)) {
   
$postId = $_REQUEST['RedirId'];
   
$session = SimpleSAML_Session::getSessionFromRequest();
} elseif (
array_key_exists('RedirInfo', $_REQUEST)) {
   
$encData = base64_decode($_REQUEST['RedirInfo']);

    if (empty(
$encData)) {
        throw new
SimpleSAML_Error_BadRequest('Invalid RedirInfo data.');
    }

    list(
$sessionId, $postId) = explode(':', SimpleSAML_Utilities::aesDecrypt($encData));

    if (empty(
$sessionId) || empty($postId)) {
        throw new
SimpleSAML_Error_BadRequest('Invalid session info data.');
    }

   
$session = SimpleSAML_Session::getSession($sessionId);
} else {
    throw new
SimpleSAML_Error_BadRequest('Missing redirection info parameter.');
}

if (
$session === NULL) {
    throw new
Exception('Unable to load session.');
}

$postData = $session->getData('core_postdatalink', $postId);

if (
$postData === NULL) {
   
/* The post data is missing, probably because it timed out. */
   
throw new Exception('The POST data we should restore was lost.');
}

$session->deleteData('core_postdatalink', $postId);

assert('is_array($postData)');
assert('array_key_exists("url", $postData)');
assert('array_key_exists("post", $postData)');

$config = SimpleSAML_Configuration::getInstance();
$p = new SimpleSAML_XHTML_Template($config, 'post.php');
$p->data['destination'] = $postData['url'];
$p->data['post'] = $postData['post'];
$p->show();
exit(
0);

?>