| 
<?php
 if (!isset($_REQUEST['RequestID'])) {
 throw new SimpleSAML_Error_BadRequest('Missing required URL parameter.');
 }
 
 /* Backwards-compatibility with old authentication pages. */
 $session = SimpleSAML_Session::getSessionFromRequest();
 $requestcache = $session->getAuthnRequest('saml2', (string)$_REQUEST['RequestID']);
 if (!$requestcache) {
 throw new Exception('Could not retrieve cached RequestID = ' . $authId);
 }
 
 $authority = $requestcache['core:authority'];
 
 $state = $requestcache['core:State'];
 
 if ($requestcache['ForceAuthn'] && $requestcache['core:prevSession'] === $session->getAuthData($authority, 'AuthnInstant')) {
 throw new Exception('ForceAuthn set, but timestamp not updated.');
 }
 
 if (isset($state['ReturnTo'])) {
 SimpleSAML_Utilities::redirectTrustedURL($state['ReturnTo']);
 }
 
 foreach ($session->getAuthState($authority) as $k => $v) {
 $state[$k] = $v;
 }
 
 call_user_func($state['ReturnCallback'], $state);
 assert('FALSE');
 
 |