Exemple #1
0
 /**
  * Redirect to page setting CDC.
  *
  * @param array &$state  The request state.
  */
 public function process(&$state)
 {
     assert('is_array($state)');
     if (!isset($state['Source']['entityid'])) {
         SimpleSAML_Logger::warning('saml:CDC: Could not find IdP entityID.');
         return;
     }
     /* Save state and build request. */
     $id = SimpleSAML_Auth_State::saveState($state, 'cdc:resume');
     $returnTo = SimpleSAML_Module::getModuleURL('cdc/resume.php', array('domain' => $this->domain));
     $params = array('id' => $id, 'entityID' => $state['Source']['entityid']);
     $this->client->sendRequest($returnTo, 'append', $params);
 }
<?php

if (!array_key_exists('domain', $_REQUEST)) {
    throw new SimpleSAML_Error_BadRequest('Missing domain to CDC resume handler.');
}
$domain = (string) $_REQUEST['domain'];
$client = new sspmod_cdc_Client($domain);
$response = $client->getResponse();
if ($response === NULL) {
    throw new SimpleSAML_Error_BadRequest('Missing CDC response to CDC resume handler.');
}
if (!isset($response['id'])) {
    throw new SimpleSAML_Error_BadRequest('CDCResponse without id.');
}
// sanitize the input
$sid = SimpleSAML_Utilities::parseStateID($response['id']);
if (!is_null($sid['url'])) {
    SimpleSAML_Utilities::checkURLAllowed($sid['url']);
}
$state = SimpleSAML_Auth_State::loadState($response['id'], 'cdc:resume');
SimpleSAML_Auth_ProcessingChain::resumeProcessing($state);