diff options
author | tailor <cygnus@janrain.com> | 2006-04-24 18:13:26 +0000 |
---|---|---|
committer | tailor <cygnus@janrain.com> | 2006-04-24 18:13:26 +0000 |
commit | 9fe157a92a14ee22518c33ba5723cfa9a902faae (patch) | |
tree | 880b4a4c3a53049af0d99a0ffd00fd9dbd01fc10 /examples | |
parent | e271bfe21ce79a7a788a4d4bac152e5ab3bef7d7 (diff) | |
download | php-openid-9fe157a92a14ee22518c33ba5723cfa9a902faae.zip php-openid-9fe157a92a14ee22518c33ba5723cfa9a902faae.tar.gz php-openid-9fe157a92a14ee22518c33ba5723cfa9a902faae.tar.bz2 |
[project @ Updated server example to work with new server impl]
Diffstat (limited to 'examples')
-rw-r--r-- | examples/server/lib/actions.php | 50 | ||||
-rw-r--r-- | examples/server/lib/common.php | 47 | ||||
-rw-r--r-- | examples/server/lib/render.php | 12 | ||||
-rw-r--r-- | examples/server/lib/render/trust.php | 2 | ||||
-rw-r--r-- | examples/server/lib/session.php | 4 |
5 files changed, 65 insertions, 50 deletions
diff --git a/examples/server/lib/actions.php b/examples/server/lib/actions.php index 546bdc6..3c331f6 100644 --- a/examples/server/lib/actions.php +++ b/examples/server/lib/actions.php @@ -14,8 +14,50 @@ require_once "Auth/OpenID.php"; */ function action_default() { - $server = getServer(); - return handleResponse($server->getOpenIDResponse('isTrusted')); + $server =& getServer(); + $method = $_SERVER['REQUEST_METHOD']; + $request = null; + if ($method == 'GET') { + $request = $_GET; + } else { + $request = $_POST; + } + + $request = Auth_OpenID::fixArgs($request); + $request = $server->decodeRequest($request); + + if (!$request) { + return about_render(); + } + + setRequestInfo($request); + + if (in_array($request->mode, + array('checkid_immediate', 'checkid_setup'))) { + + if (isTrusted($request->identity, $request->trust_root)) { + $response =& $request->answer(true); + } else if ($request->immediate) { + $response =& $request->answer(false, getServerURL()); + } else { + if (!getLoggedInUser()) { + return login_render(); + } + return trust_render($request); + } + } else { + $response =& $server->handleRequest($request); + } + + $webresponse =& $server->encodeResponse($response); + + foreach ($webresponse->headers as $k => $v) { + header("$k: $v"); + } + + header(header_connection_close); + print $webresponse->body; + exit(0); } /** @@ -72,7 +114,7 @@ function action_login() list ($errors, $openid_url) = login_checkInput($fields); if (count($errors) || !$openid_url) { - $needed = $info ? $info->getIdentityURL() : false; + $needed = $info ? $info->identity : false; return login_render($errors, @$fields['openid_url'], $needed); } else { setLoggedInUser($openid_url); @@ -92,7 +134,7 @@ function action_trust() $trusted = isset($_POST['trust']); if ($info && isset($_POST['remember'])) { $sites = getSessionSites(); - $sites[$info->getTrustRoot()] = $trusted; + $sites[$info->trust_root] = $trusted; setSessionSites($sites); } return doAuth($info, $trusted, true); diff --git a/examples/server/lib/common.php b/examples/server/lib/common.php index 338bad2..4bc1dac 100644 --- a/examples/server/lib/common.php +++ b/examples/server/lib/common.php @@ -16,38 +16,11 @@ function authCancel($info) setRequestInfo(); $url = $info->getCancelURL(); } else { - $server = getServer(); - $url = $server->server_url; + $url = getServerURL(); } return redirect_render($url); } -function handleResponse($response, $do_auth=true) -{ - list ($status, $info) = $response; - switch($status) { - case Auth_OpenID_REMOTE_ERROR: - return kv_render($info, false); - case Auth_OpenID_REMOTE_OK: - return kv_render($info); - case Auth_OpenID_REDIRECT: - return redirect_render($info); - case Auth_OpenID_DO_AUTH: - if ($do_auth) { - return doAuth($info); - } else { - return about_render('Got unexpected DO_AUTH'); - } - case Auth_OpenID_DO_ABOUT: - return about_render(); - case Auth_OpenID_LOCAL_ERROR: - return about_render($info, false); - default: - $repr = var_export($status, true); - return about_render("Internal error: unknown status $repr"); - } -} - function doAuth($info, $trusted=null, $fail_cancels=false) { if (!$info) { @@ -55,7 +28,7 @@ function doAuth($info, $trusted=null, $fail_cancels=false) return authCancel(null); } - $req_url = $info->getIdentityURL(); + $req_url = $info->identity; $user = getLoggedInUser(); setRequestInfo($info); @@ -64,14 +37,22 @@ function doAuth($info, $trusted=null, $fail_cancels=false) } $sites = getSessionSites(); - $trust_root = $info->getTrustRoot(); + $trust_root = $info->trust_root; $fail_cancels = $fail_cancels || isset($sites[$trust_root]); $trusted = isset($trusted) ? $trusted : isTrusted($req_url, $trust_root); if ($trusted) { setRequestInfo(); - $server = getServer(); - $response = $server->getAuthResponse(&$info, true); - return handleResponse($response, false); + $server =& getServer(); + $response =& $info->answer(true); + $webresponse =& $server->encodeResponse($response); + + $new_headers = array(); + + foreach ($webresponse->headers as $k => $v) { + $new_headers[] = $k.": ".$v; + } + + return array($new_headers, $webresponse->body); } elseif ($fail_cancels) { return authCancel($info); } else { diff --git a/examples/server/lib/render.php b/examples/server/lib/render.php index ff1ca20..f607f90 100644 --- a/examples/server/lib/render.php +++ b/examples/server/lib/render.php @@ -48,23 +48,13 @@ function link_render($url, $text=null) { } /** - * Return a response to an OpenID consumer's POST - */ -function kv_render($kv, $success=true) -{ - $headers = array(($success ? http_ok : http_bad_request), - header_content_text, - header_connection_close); - return array($headers, $kv); -} - -/** * Return an HTTP redirect response */ function redirect_render($redir_url) { $headers = array(http_found, header_content_text, + header_connection_close, 'Location: ' . $redir_url, ); $body = sprintf(redirect_message, $redir_url); diff --git a/examples/server/lib/render/trust.php b/examples/server/lib/render/trust.php index c00803c..60d01d0 100644 --- a/examples/server/lib/render/trust.php +++ b/examples/server/lib/render/trust.php @@ -20,7 +20,7 @@ function trust_render($info) { $current_user = getLoggedInUser(); $lnk = link_render($current_user); - $trust_root = htmlspecialchars($info->getTrustRoot()); + $trust_root = htmlspecialchars($info->trust_root); $trust_url = buildURL('trust', true); $form = sprintf(trust_form_pat, $lnk, $trust_root, $trust_url); return page_render($form, $current_user, 'Trust This Site'); diff --git a/examples/server/lib/session.php b/examples/server/lib/session.php index b7544bb..263a64f 100644 --- a/examples/server/lib/session.php +++ b/examples/server/lib/session.php @@ -1,6 +1,7 @@ <?php require_once "config.php"; +require_once "lib/render.php"; require_once "Auth/OpenID/Server.php"; /** @@ -70,6 +71,7 @@ function writeResponse($resp) { list ($headers, $body) = $resp; array_walk($headers, 'header'); + header(header_connection_close); print $body; } @@ -80,7 +82,7 @@ function getServer() { static $server = null; if (!isset($server)) { - $server = new Auth_OpenID_Server(getServerURL(), getOpenIDStore()); + $server =& new Auth_OpenID_Server(getOpenIDStore()); } return $server; } |