discover 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env python
  2. from openid.consumer.discover import discover, DiscoveryFailure
  3. from openid.fetchers import HTTPFetchingError
  4. names = [["server_url", "Server URL "],
  5. ["local_id", "Local ID "],
  6. ["canonicalID", "Canonical ID"],
  7. ]
  8. def show_services(user_input, normalized, services):
  9. print " Claimed identifier:", normalized
  10. if services:
  11. print " Discovered OpenID services:"
  12. for n, service in enumerate(services):
  13. print " %s." % (n,)
  14. for attr, name in names:
  15. val = getattr(service, attr, None)
  16. if val is not None:
  17. print " %s: %s" % (name, val)
  18. print " Type URIs:"
  19. for type_uri in service.type_uris:
  20. print " *", type_uri
  21. print
  22. else:
  23. print " No OpenID services found"
  24. print
  25. if __name__ == "__main__":
  26. import sys
  27. for user_input in sys.argv[1:]:
  28. print "=" * 50
  29. print "Running discovery on", user_input
  30. try:
  31. normalized, services = discover(user_input)
  32. except DiscoveryFailure, why:
  33. print "Discovery failed:", why
  34. print
  35. except HTTPFetchingError, why:
  36. print "HTTP request failed:", why
  37. print
  38. else:
  39. show_services(user_input, normalized, services)