예제 #1
0
    /**
     * Continue the logout operation.
     *
     * This function will never return.
     *
     * @param string                          $assocId The association that is terminated.
     * @param string|NULL                     $relayState The RelayState from the start of the logout.
     * @param SimpleSAML_Error_Exception|null $error The error that occurred during session termination (if any).
     */
    public function onResponse($assocId, $relayState, SimpleSAML_Error_Exception $error = null)
    {
        assert('is_string($assocId)');
        $spId = sha1($assocId);
        $this->idp->terminateAssociation($assocId);
        $header = <<<HEADER
<!DOCTYPE html>
<html>
 <head>
  <title>Logout response from %s</title>
  <script>
HEADER;
        printf($header, htmlspecialchars(var_export($assocId, true)));
        if ($error) {
            $errorMsg = $error->getMessage();
            echo 'window.parent.logoutFailed("' . $spId . '", "' . addslashes($errorMsg) . '");';
        } else {
            echo 'window.parent.logoutCompleted("' . $spId . '");';
        }
        echo <<<FOOTER
  </script>
 </head>
 <body>
 </body>
</html>
FOOTER;
        exit(0);
    }
예제 #2
0
    /**
     * Continue the logout operation.
     *
     * This function will never return.
     *
     * @param string $assocId  The association that is terminated.
     * @param string|NULL $relayState  The RelayState from the start of the logout.
     * @param SimpleSAML_Error_Exception|NULL $error  The error that occurred during session termination (if any).
     */
    public function onResponse($assocId, $relayState, SimpleSAML_Error_Exception $error = NULL)
    {
        assert('is_string($assocId)');
        $spId = sha1($assocId);
        $this->idp->terminateAssociation($assocId);
        echo '<!DOCTYPE html>
<html>
<head>
<title>Logout response from ' . htmlspecialchars(var_export($assocId, TRUE)) . '</title>
<script>
';
        if ($error) {
            $errorMsg = $error->getMessage();
            echo 'window.parent.logoutFailed("' . $spId . '", "' . addslashes($errorMsg) . '");';
        } else {
            echo 'window.parent.logoutCompleted("' . $spId . '");';
        }
        echo '
</script>
</head>
<body>
</body>
</html>
';
        exit(0);
    }