1 #!/usr/bin/env python 2 # -*- coding: iso-8859-1 -*- 3 4 "An OpenID login example with some local user pages." 5 6 from WebStack.Resources.OpenIDLogin import OpenIDLoginResource, Authenticator 7 from WebStack.Resources.ResourceMap import MapResource 8 from WebStack.Resources.Static import StringResource 9 from WebStack.Generic import ContentType 10 11 def get_site_map(app_url, deployment_url): 12 13 """ 14 Return a resource for the site having the given 'app_url' and 15 'deployment_url'. The 'app_url' should be the "bare" reference using a 16 protocol, host and port, not including any path information. 17 """ 18 19 login = OpenIDLoginResource( 20 app_url=app_url, 21 authenticator=Authenticator( 22 credentials=( 23 # Local identifier, username, password 24 ((deployment_url + "/badger", "badger"), "abc"), 25 ((deployment_url + "/vole", "vole"), "xyz"), 26 ((deployment_url + u"/???", u"???"), u"???"), 27 ) 28 ) 29 ) 30 31 return MapResource({ 32 "" : login, 33 "login" : login, 34 35 # Some local OpenID pages. 36 37 "badger" : 38 StringResource(""" 39 <html> 40 <head> 41 <link rel="openid2.provider openid.server" href="%s/login" /> 42 <link rel="openid2.local_id openid.delegate" href="%s/badger" /> 43 <title>Badger's Home Page</title> 44 </head> 45 <body> 46 <p>Home page for the OpenID authenticated user, <code>badger</code>.</p> 47 </body> 48 </html> 49 """ % (deployment_url, deployment_url), ContentType("text/html")), 50 u"???" : 51 StringResource(u""" 52 <html> 53 <head> 54 <link rel="openid2.provider openid.server" href="%s/login" /> 55 <link rel="openid2.local_id openid.delegate" href="%s/???" /> 56 <title>Home Page for ???</title> 57 </head> 58 <body> 59 <p>Home page for the OpenID authenticated user, <code>???</code>.</p> 60 </body> 61 </html> 62 """ % (deployment_url, deployment_url), ContentType("text/html", "iso-8859-1")), 63 "vole" : 64 StringResource(""" 65 <html> 66 <head> 67 <link rel="openid2.provider openid.server" href="%s/login" /> 68 <link rel="openid2.local_id openid.delegate" href="%s/vole" /> 69 <title>Vole's Home Page</title> 70 </head> 71 <body> 72 <p>Home page for the OpenID authenticated user, <code>vole</code>.</p> 73 </body> 74 </html> 75 """ % (deployment_url, deployment_url), ContentType("text/html")) 76 }) 77 78 # vim: tabstop=4 expandtab shiftwidth=4