diff options
Diffstat (limited to 'mod/oauth_api/vendors/oauth/example/server/core')
6 files changed, 206 insertions, 0 deletions
diff --git a/mod/oauth_api/vendors/oauth/example/server/core/init.php b/mod/oauth_api/vendors/oauth/example/server/core/init.php new file mode 100644 index 000000000..e5bb9de35 --- /dev/null +++ b/mod/oauth_api/vendors/oauth/example/server/core/init.php @@ -0,0 +1,127 @@ +<?php + +/** + * oauth-php: Example OAuth server + * + * Global initialization file for the server, defines some helper + * functions, required includes, and starts the session. + * + * @author Arjan Scherpenisse <arjan@scherpenisse.net> + * + * + * The MIT License + * + * Copyright (c) 2007-2008 Mediamatic Lab + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +/* + * Simple 'user management' + */ +define ('USERNAME', 'sysadmin'); +define ('PASSWORD', 'sysadmin'); + + +/* + * Always announce XRDS OAuth discovery + */ +header('X-XRDS-Location: http://' . $_SERVER['SERVER_NAME'] . '/services.xrds'); + + +/* + * Initialize the database connection + */ +$info = parse_url(getenv('DB_DSN')); +($GLOBALS['db_conn'] = mysql_connect($info['host'], $info['user'], $info['pass'])) || die(mysql_error()); +mysql_select_db(basename($info['path']), $GLOBALS['db_conn']) || die(mysql_error()); +unset($info); + + +require_once '../../../library/OAuthServer.php'; + +/* + * Initialize OAuth store + */ +require_once '../../../library/OAuthStore.php'; +OAuthStore::instance('MySQL', array('conn' => $GLOBALS['db_conn'])); + + +/* + * Session + */ +session_start(); + + +/* + * Template handling + */ +require_once 'smarty/libs/Smarty.class.php'; +function session_smarty() +{ + if (!isset($GLOBALS['smarty'])) + { + $GLOBALS['smarty'] = new Smarty; + $GLOBALS['smarty']->template_dir = dirname(__FILE__) . '/templates/'; + $GLOBALS['smarty']->compile_dir = dirname(__FILE__) . '/../cache/templates_c'; + } + + return $GLOBALS['smarty']; +} + +function assert_logged_in() +{ + if (empty($_SESSION['authorized'])) + { + $uri = $_SERVER['REQUEST_URI']; + header('Location: /logon?goto=' . urlencode($uri)); + } +} + +function assert_request_vars() +{ + foreach(func_get_args() as $a) + { + if (!isset($_REQUEST[$a])) + { + header('HTTP/1.1 400 Bad Request'); + echo 'Bad request.'; + exit; + } + } +} + +function assert_request_vars_all() +{ + foreach($_REQUEST as $row) + { + foreach(func_get_args() as $a) + { + if (!isset($row[$a])) + { + header('HTTP/1.1 400 Bad Request'); + echo 'Bad request.'; + exit; + } + } + } +} + +?>
\ No newline at end of file diff --git a/mod/oauth_api/vendors/oauth/example/server/core/templates/inc/footer.tpl b/mod/oauth_api/vendors/oauth/example/server/core/templates/inc/footer.tpl new file mode 100644 index 000000000..308b1d01b --- /dev/null +++ b/mod/oauth_api/vendors/oauth/example/server/core/templates/inc/footer.tpl @@ -0,0 +1,2 @@ +</body> +</html> diff --git a/mod/oauth_api/vendors/oauth/example/server/core/templates/inc/header.tpl b/mod/oauth_api/vendors/oauth/example/server/core/templates/inc/header.tpl new file mode 100644 index 000000000..5046f54b0 --- /dev/null +++ b/mod/oauth_api/vendors/oauth/example/server/core/templates/inc/header.tpl @@ -0,0 +1,2 @@ +<html> + <body> diff --git a/mod/oauth_api/vendors/oauth/example/server/core/templates/index.tpl b/mod/oauth_api/vendors/oauth/example/server/core/templates/index.tpl new file mode 100644 index 000000000..7b065537d --- /dev/null +++ b/mod/oauth_api/vendors/oauth/example/server/core/templates/index.tpl @@ -0,0 +1,13 @@ +{include file='inc/header.tpl'} + +<h1>OAuth server</h1> +Go to: + +<ul> + <li><a href="/logon">Logon</a></li> + <li><a href="/register">Register your consumer</a></li> +</ul> + +Afterwards, make an OAuth test request to <strong>http://{$smarty.server.name}/hello</strong> to test your connection.</p> + +{include file='inc/footer.tpl'} diff --git a/mod/oauth_api/vendors/oauth/example/server/core/templates/logon.tpl b/mod/oauth_api/vendors/oauth/example/server/core/templates/logon.tpl new file mode 100644 index 000000000..5ccd432b5 --- /dev/null +++ b/mod/oauth_api/vendors/oauth/example/server/core/templates/logon.tpl @@ -0,0 +1,21 @@ +{include file='inc/header.tpl'} + +<h1>Login</h1> + +<form method="post"> + <input type="hidden" name="goto" value="{$smarty.request.goto}" /> + + <label for="username">User name</label><br /> + <input type="text" name="username" id="username" /> + + <br /><br /> + + <label for="password">Password</label><br /> + <input type="text" name="password" id="password" /> + + <br /><br /> + + <input type="submit" value="Login" /> +</form> + +{include file='inc/footer.tpl'} diff --git a/mod/oauth_api/vendors/oauth/example/server/core/templates/register.tpl b/mod/oauth_api/vendors/oauth/example/server/core/templates/register.tpl new file mode 100644 index 000000000..0e28c1584 --- /dev/null +++ b/mod/oauth_api/vendors/oauth/example/server/core/templates/register.tpl @@ -0,0 +1,41 @@ +{include file='inc/header.tpl'} + +<h1>Register server</h1> + +<p>Register a server which is gonna act as an identity client.</p> + +<form method="post"> + + <fieldset> + <legend>About You</legend> + + <p> + <label for="requester_name">Your name</label><br/> + <input class="text" id="requester_name" name="requester_name" type="text" value="{$consumer.requester_name|default:$smarty.request.requester_name|escape}" /> + </p> + + <p> + <label for="requester_email">Your email address</label><br/> + <input class="text" id="requester_email" name="requester_email" type="text" value="{$consumer.requester_email|default:$smarty.request.requester_email|escape}" /> + </p> + </fieldset> + + <fieldset> + <legend>Location Of Your Application Or Site</legend> + + <p> + <label for="application_uri">URL of your application or site</label><br/> + <input id="application_uri" class="text" name="application_uri" type="text" value="{$consumer.application_uri|default:$smarty.request.application_uri|escape}" /> + </p> + + <p> + <label for="callback_uri">Callback URL</label><br/> + <input id="callback_uri" class="text" name="callback_uri" type="text" value="{$consumer.callback_uri|default:$smarty.request.callback_uri|escape}" /> + </p> + </fieldset> + + <br /> + <input type="submit" value="Register server" /> +</form> + +{include file='inc/footer.tpl'} |