function runTest() { $this->assertEquals(Services_Yadis_identifierScheme('=john.smith'), 'XRI'); $this->assertEquals(Services_Yadis_identifierScheme('@smiths/john'), 'XRI'); $this->assertEquals(Services_Yadis_identifierScheme('smoker.myopenid.com'), 'URI'); $this->assertEquals(Services_Yadis_identifierScheme('xri://=john'), 'XRI'); }
/** * Start the OpenID authentication process. See steps 1-2 in the * overview at the top of this file. * * @param User_url: Identity URL given by the user. This method * performs a textual transformation of the URL to try and make * sure it is normalized. For example, a user_url of example.com * will be normalized to http://example.com/ normalizing and * resolving any redirects the server might issue. * * @return Auth_OpenID_AuthRequest $auth_request An object * containing the discovered information will be returned, with a * method for building a redirect URL to the server, as described * in step 3 of the overview. This object may also be used to add * extension arguments to the request, using its 'addExtensionArg' * method. */ function begin($user_url) { $discoverMethod = '_Auth_OpenID_discoverServiceList'; $openid_url = $user_url; if (Services_Yadis_identifierScheme($user_url) == 'XRI') { $discoverMethod = '_Auth_OpenID_discoverXRIServiceList'; } else { $openid_url = Auth_OpenID::normalizeUrl($user_url); } $disco =& new Services_Yadis_Discovery($this->session, $openid_url, $this->session_key_prefix); // Set the 'stale' attribute of the manager. If discovery // fails in a fatal way, the stale flag will cause the manager // to be cleaned up next time discovery is attempted. $m = $disco->getManager(); $loader = new Services_Yadis_ManagerLoader(); if ($m) { if ($m->stale) { $disco->destroyManager(); } else { $m->stale = true; $disco->session->set($disco->session_key, serialize($loader->toSession($m))); } } $endpoint = $disco->getNextService($discoverMethod, $this->consumer->fetcher); // Reset the 'stale' attribute of the manager. $m =& $disco->getManager(); if ($m) { $m->stale = false; $disco->session->set($disco->session_key, serialize($loader->toSession($m))); } if ($endpoint === null) { return null; } else { return $this->beginWithoutDiscovery($endpoint); } }
function OpenIDToUserName($openid) { if (Services_Yadis_identifierScheme($openid) == 'XRI') { wfDebug("OpenID: Handling an XRI: {$openid}\n"); return OpenIDToUserNameXri($openid); } else { wfDebug("OpenID: Handling an URL: {$openid}\n"); return OpenIDToUserNameUrl($openid); } }
function OpenIDToUrl($openid) { /* ID is either an URL already or an i-name */ if (Services_Yadis_identifierScheme($openid) == 'XRI') { return OpenIDXriToUrl($openid); } else { return $openid; } }