gehe zum Quellcode dieser Datei
Datenstrukturen | |
| class | Auth_OpenID_ServiceEndpoint |
Aufzählungen | |
| enum | Auth_OpenID_XMLNS_1_0 |
| enum | Auth_OpenID_TYPE_1_2 |
| enum | Auth_OpenID_TYPE_1_1 |
| enum | Auth_OpenID_TYPE_1_0 |
| enum | Auth_OpenID_TYPE_2_0_IDP |
| enum | Auth_OpenID_TYPE_2_0 |
| enum | Auth_OpenID_RP_RETURN_TO_URL_TYPE |
Funktionen | |
| Auth_OpenID_getOpenIDTypeURIs () | |
| Auth_OpenID_findOPLocalIdentifier ($service, $type_uris) | |
| filter_MatchesAnyOpenIDType (&$service) | |
| Auth_OpenID_bestMatchingService ($service, $preferred_types) | |
| Auth_OpenID_arrangeByType ($service_list, $preferred_types) | |
| Auth_OpenID_getOPOrUserServices ($openid_services) | |
| Auth_OpenID_makeOpenIDEndpoints ($uri, $yadis_services) | |
| Auth_OpenID_discoverWithYadis ($uri, &$fetcher, $endpoint_filter='Auth_OpenID_getOPOrUserServices', $discover_function=null) | |
| Auth_OpenID_discoverURI ($uri, &$fetcher) | |
| Auth_OpenID_discoverWithoutYadis ($uri, &$fetcher) | |
| Auth_OpenID_discoverXRI ($iname, &$fetcher) | |
| Auth_OpenID_discover ($uri, &$fetcher) | |
Definiert in Zeile 22 der Datei Discover.php.
| enum Auth_OpenID_TYPE_1_0 |
Definiert in Zeile 19 der Datei Discover.php.
| enum Auth_OpenID_TYPE_1_1 |
Definiert in Zeile 18 der Datei Discover.php.
| enum Auth_OpenID_TYPE_1_2 |
Definiert in Zeile 17 der Datei Discover.php.
| enum Auth_OpenID_TYPE_2_0 |
Definiert in Zeile 21 der Datei Discover.php.
Definiert in Zeile 20 der Datei Discover.php.
The OpenID and Yadis discovery implementation for OpenID 1.2.
Definiert in Zeile 14 der Datei Discover.php.
| Auth_OpenID_arrangeByType | ( | $ | service_list, | |
| $ | preferred_types | |||
| ) |
Definiert in Zeile 339 der Datei Discover.php.
00341 { 00342 // Rearrange service_list in a new list so services are ordered by 00343 // types listed in preferred_types. Return the new list. 00344 00345 // Build a list with the service elements in tuples whose 00346 // comparison will prefer the one with the best matching service 00347 $prio_services = array(); 00348 foreach ($service_list as $index => $service) { 00349 $prio_services[] = array(Auth_OpenID_bestMatchingService($service, 00350 $preferred_types), 00351 $index, $service); 00352 } 00353 00354 sort($prio_services); 00355 00356 // Now that the services are sorted by priority, remove the sort 00357 // keys from the list. 00358 foreach ($prio_services as $index => $s) { 00359 $prio_services[$index] = $prio_services[$index][2]; 00360 } 00361 00362 return $prio_services;
| Auth_OpenID_bestMatchingService | ( | $ | service, | |
| $ | preferred_types | |||
| ) |
Definiert in Zeile 320 der Datei Discover.php.
00322 { 00323 // Return the index of the first matching type, or something 00324 // higher if no type matches. 00325 // 00326 // This provides an ordering in which service elements that 00327 // contain a type that comes earlier in the preferred types list 00328 // come before service elements that come later. If a service 00329 // element has more than one type, the most preferred one wins. 00330 00331 foreach ($preferred_types as $index => $typ) { 00332 if (in_array($typ, $service->type_uris)) { 00333 return $index; 00334 } 00335 } 00336 00337 return count($preferred_types);
| Auth_OpenID_discover | ( | $ | uri, | |
| &$ | fetcher | |||
| ) |
Definiert in Zeile 515 der Datei Discover.php.
00517 { 00518 // If the fetcher (i.e., PHP) doesn't support SSL, we can't do 00519 // discovery on an HTTPS URL. 00520 if ($fetcher->isHTTPS($uri) && !$fetcher->supportsSSL()) { 00521 return array($uri, array()); 00522 } 00523 00524 if (Auth_Yadis_identifierScheme($uri) == 'XRI') { 00525 $result = Auth_OpenID_discoverXRI($uri, $fetcher); 00526 } else { 00527 $result = Auth_OpenID_discoverURI($uri, $fetcher); 00528 } 00529 00530 // If the fetcher doesn't support SSL, we can't interact with 00531 // HTTPS server URLs; remove those endpoints from the list. 00532 if (!$fetcher->supportsSSL()) { 00533 $http_endpoints = array(); 00534 list($new_uri, $endpoints) = $result; 00535 00536 foreach ($endpoints as $e) { 00537 if (!$fetcher->isHTTPS($e->server_url)) { 00538 $http_endpoints[] = $e; 00539 } 00540 } 00541 00542 $result = array($new_uri, $http_endpoints); 00543 } 00544 00545 return $result;
| Auth_OpenID_discoverURI | ( | $ | uri, | |
| &$ | fetcher | |||
| ) |
Definiert in Zeile 467 der Datei Discover.php.
00469 { 00470 $uri = Auth_OpenID::normalizeUrl($uri); 00471 return Auth_OpenID_discoverWithYadis($uri, $fetcher);
| Auth_OpenID_discoverWithoutYadis | ( | $ | uri, | |
| &$ | fetcher | |||
| ) |
Definiert in Zeile 473 der Datei Discover.php.
00475 { 00476 $http_resp = @$fetcher->get($uri); 00477 00478 if ($http_resp->status != 200 and $http_resp->status != 206) { 00479 return array($uri, array()); 00480 } 00481 00482 $identity_url = $http_resp->final_url; 00483 00484 // Try to parse the response as HTML to get OpenID 1.0/1.1 <link 00485 // rel="..."> 00486 $openid_services = Auth_OpenID_ServiceEndpoint::fromHTML( 00487 $identity_url, 00488 $http_resp->body); 00489 00490 return array($identity_url, $openid_services);
| Auth_OpenID_discoverWithYadis | ( | $ | uri, | |
| &$ | fetcher, | |||
| $ | endpoint_filter = 'Auth_OpenID_getOPOrUserServices', |
|||
| $ | discover_function = null | |||
| ) |
Definiert in Zeile 417 der Datei Discover.php.
00421 { 00422 // Discover OpenID services for a URI. Tries Yadis and falls back 00423 // on old-style <link rel='...'> discovery if Yadis fails. 00424 00425 // Might raise a yadis.discover.DiscoveryFailure if no document 00426 // came back for that URI at all. I don't think falling back to 00427 // OpenID 1.0 discovery on the same URL will help, so don't bother 00428 // to catch it. 00429 if ($discover_function === null) { 00430 $discover_function = array('Auth_Yadis_Yadis', 'discover'); 00431 } 00432 00433 $openid_services = array(); 00434 00435 $response = call_user_func_array($discover_function, 00436 array($uri, &$fetcher)); 00437 00438 $yadis_url = $response->normalized_uri; 00439 $yadis_services = array(); 00440 00441 if ($response->isFailure()) { 00442 return array($uri, array()); 00443 } 00444 00445 $openid_services = Auth_OpenID_ServiceEndpoint::fromXRDS( 00446 $yadis_url, 00447 $response->response_text); 00448 00449 if (!$openid_services) { 00450 if ($response->isXRDS()) { 00451 return Auth_OpenID_discoverWithoutYadis($uri, 00452 $fetcher); 00453 } 00454 00455 // Try to parse the response as HTML to get OpenID 1.0/1.1 00456 // <link rel="..."> 00457 $openid_services = Auth_OpenID_ServiceEndpoint::fromHTML( 00458 $yadis_url, 00459 $response->response_text); 00460 } 00461 00462 $openid_services = call_user_func_array($endpoint_filter, 00463 array(&$openid_services)); 00464 00465 return array($yadis_url, $openid_services);
| Auth_OpenID_discoverXRI | ( | $ | iname, | |
| &$ | fetcher | |||
| ) |
Definiert in Zeile 492 der Datei Discover.php.
00494 { 00495 $resolver = new Auth_Yadis_ProxyResolver($fetcher); 00496 list($canonicalID, $yadis_services) = 00497 $resolver->query($iname, 00498 Auth_OpenID_getOpenIDTypeURIs(), 00499 array('filter_MatchesAnyOpenIDType')); 00500 00501 $openid_services = Auth_OpenID_makeOpenIDEndpoints($iname, 00502 $yadis_services); 00503 00504 $openid_services = Auth_OpenID_getOPOrUserServices($openid_services); 00505 00506 for ($i = 0; $i < count($openid_services); $i++) { 00507 $openid_services[$i]->canonicalID = $canonicalID; 00508 $openid_services[$i]->claimed_id = $canonicalID; 00509 $openid_services[$i]->display_identifier = $iname; 00510 } 00511 00512 // FIXME: returned xri should probably be in some normal form 00513 return array($iname, $openid_services);
| Auth_OpenID_findOPLocalIdentifier | ( | $ | service, | |
| $ | type_uris | |||
| ) |
Definiert in Zeile 262 der Datei Discover.php.
00264 { 00265 // Extract a openid:Delegate value from a Yadis Service element. 00266 // If no delegate is found, returns null. Returns false on 00267 // discovery failure (when multiple delegate/localID tags have 00268 // different values). 00269 00270 $service->parser->registerNamespace('openid', 00271 Auth_OpenID_XMLNS_1_0); 00272 00273 $service->parser->registerNamespace('xrd', 00274 Auth_Yadis_XMLNS_XRD_2_0); 00275 00276 $parser =& $service->parser; 00277 00278 $permitted_tags = array(); 00279 00280 if (in_array(Auth_OpenID_TYPE_1_1, $type_uris) || 00281 in_array(Auth_OpenID_TYPE_1_0, $type_uris)) { 00282 $permitted_tags[] = 'openid:Delegate'; 00283 } 00284 00285 if (in_array(Auth_OpenID_TYPE_2_0, $type_uris)) { 00286 $permitted_tags[] = 'xrd:LocalID'; 00287 } 00288 00289 $local_id = null; 00290 00291 foreach ($permitted_tags as $tag_name) { 00292 $tags = $service->getElements($tag_name); 00293 00294 foreach ($tags as $tag) { 00295 $content = $parser->content($tag); 00296 00297 if ($local_id === null) { 00298 $local_id = $content; 00299 } else if ($local_id != $content) { 00300 return false; 00301 } 00302 } 00303 } 00304 00305 return $local_id;
| Auth_OpenID_getOpenIDTypeURIs | ( | ) |
Definiert in Zeile 24 der Datei Discover.php.
00026 { 00027 return array(Auth_OpenID_TYPE_2_0_IDP, 00028 Auth_OpenID_TYPE_2_0, 00029 Auth_OpenID_TYPE_1_2, 00030 Auth_OpenID_TYPE_1_1, 00031 Auth_OpenID_TYPE_1_0, 00032 Auth_OpenID_RP_RETURN_TO_URL_TYPE);
| Auth_OpenID_getOPOrUserServices | ( | $ | openid_services | ) |
Definiert in Zeile 371 der Datei Discover.php.
00373 { 00374 $op_services = Auth_OpenID_arrangeByType($openid_services, 00375 array(Auth_OpenID_TYPE_2_0_IDP)); 00376 00377 $openid_services = Auth_OpenID_arrangeByType($openid_services, 00378 Auth_OpenID_getOpenIDTypeURIs()); 00379 00380 if ($op_services) { 00381 return $op_services; 00382 } else { 00383 return $openid_services; 00384 }
| Auth_OpenID_makeOpenIDEndpoints | ( | $ | uri, | |
| $ | yadis_services | |||
| ) |
Definiert in Zeile 386 der Datei Discover.php.
00388 { 00389 $s = array(); 00390 00391 if (!$yadis_services) { 00392 return $s; 00393 } 00394 00395 foreach ($yadis_services as $service) { 00396 $type_uris = $service->getTypes(); 00397 $uris = $service->getURIs(); 00398 00399 // If any Type URIs match and there is an endpoint URI 00400 // specified, then this is an OpenID endpoint 00401 if ($type_uris && 00402 $uris) { 00403 foreach ($uris as $service_uri) { 00404 $openid_endpoint = new Auth_OpenID_ServiceEndpoint(); 00405 if ($openid_endpoint->parseService($uri, 00406 $service_uri, 00407 $type_uris, 00408 $service)) { 00409 $s[] = $openid_endpoint; 00410 } 00411 } 00412 } 00413 } 00414 00415 return $s;
| filter_MatchesAnyOpenIDType | ( | &$ | service | ) |
Definiert in Zeile 307 der Datei Discover.php.
00309 { 00310 $uris = $service->getTypes(); 00311 00312 foreach ($uris as $uri) { 00313 if (in_array($uri, Auth_OpenID_getOpenIDTypeURIs())) { 00314 return true; 00315 } 00316 } 00317 00318 return false;
| Copyright © 2003 - 2009 MyOOS [Shopsystem]. All rights reserved. MyOOS [Shopsystem] is Free Software released under the GNU/GPL License. Webmaster: info@r23.de (Impressum) |
|