123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <?php
- require_once "config.php";
- require_once "lib/render.php";
- require_once "Auth/OpenID/Server.php";
- /**
- * Set up the session
- */
- function init()
- {
- session_name('openid_server');
- session_start();
- }
- /**
- * Get the style markup
- */
- function getStyle()
- {
- $parent = rtrim(dirname(getServerURL()), '/');
- $url = htmlspecialchars($parent . '/openid-server.css', ENT_QUOTES);
- return sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $url);
- }
- /**
- * Get the URL of the current script
- */
- function getServerURL()
- {
- $path = $_SERVER['SCRIPT_NAME'];
- $host = $_SERVER['HTTP_HOST'];
- $port = $_SERVER['SERVER_PORT'];
- $s = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] ? 's' : '';
- if (($s && $port == "443") || (!$s && $port == "80")) {
- $p = '';
- } else {
- $p = ':' . $port;
- }
- return "http$s://$host$p$path";
- }
- /**
- * Build a URL to a server action
- */
- function buildURL($action=null, $escaped=true)
- {
- $url = getServerURL();
- if ($action) {
- $url .= '/' . $action;
- }
- return $escaped ? htmlspecialchars($url, ENT_QUOTES) : $url;
- }
- /**
- * Extract the current action from the request
- */
- function getAction()
- {
- $path_info = @$_SERVER['PATH_INFO'];
- $action = ($path_info) ? substr($path_info, 1) : '';
- $function_name = 'action_' . $action;
- return $function_name;
- }
- /**
- * Write the response to the request
- */
- function writeResponse($resp)
- {
- list ($headers, $body) = $resp;
- array_walk($headers, 'header');
- header(header_connection_close);
- print $body;
- }
- /**
- * Instantiate a new OpenID server object
- */
- function getServer()
- {
- static $server = null;
- if (!isset($server)) {
- $server = new Auth_OpenID_Server(getOpenIDStore(),
- buildURL());
- }
- return $server;
- }
- /**
- * Return a hashed form of the user's password
- */
- function hashPassword($password)
- {
- return bin2hex(Auth_OpenID_SHA1($password));
- }
- /**
- * Get the openid_url out of the cookie
- *
- * @return mixed $openid_url The URL that was stored in the cookie or
- * false if there is none present or if the cookie is bad.
- */
- function getLoggedInUser()
- {
- return isset($_SESSION['openid_url'])
- ? $_SESSION['openid_url']
- : false;
- }
- /**
- * Set the openid_url in the cookie
- *
- * @param mixed $identity_url The URL to set. If set to null, the
- * value will be unset.
- */
- function setLoggedInUser($identity_url=null)
- {
- if (!isset($identity_url)) {
- unset($_SESSION['openid_url']);
- } else {
- $_SESSION['openid_url'] = $identity_url;
- }
- }
- function getRequestInfo()
- {
- return isset($_SESSION['request'])
- ? unserialize($_SESSION['request'])
- : false;
- }
- function setRequestInfo($info=null)
- {
- if (!isset($info)) {
- unset($_SESSION['request']);
- } else {
- $_SESSION['request'] = serialize($info);
- }
- }
- function getSreg($identity)
- {
- // from config.php
- global $openid_sreg;
- if (!is_array($openid_sreg)) {
- return null;
- }
- return $openid_sreg[$identity];
- }
- function idURL($identity)
- {
- return buildURL('idpage') . "?user=" . $identity;
- }
- function idFromURL($url)
- {
- if (strpos($url, 'idpage') === false) {
- return null;
- }
- $parsed = parse_url($url);
- $q = $parsed['query'];
- $parts = array();
- parse_str($q, $parts);
- return @$parts['user'];
- }
- ?>
|