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): 12 13 "Return a resource for the site having the given 'app_url'." 14 15 return MapResource({ 16 "login" : 17 OpenIDLoginResource( 18 app_url=app_url, 19 authenticator=Authenticator( 20 credentials=( 21 # Local identifier, username, password 22 ((app_url + "/badger", "badger"), "abc"), 23 ((app_url + "/vole", "vole"), "xyz"), 24 ((app_url + u"/???", u"???"), u"???"), 25 ) 26 ) 27 ), 28 29 # Some local OpenID pages. 30 31 "badger" : 32 StringResource(""" 33 <html> 34 <head> 35 <link rel="openid2.provider openid.server" href="%s/login" /> 36 <link rel="openid2.local_id openid.delegate" href="%s/badger" /> 37 <title>Badger's Home Page</title> 38 </head> 39 <body> 40 <p>Home page for the OpenID authenticated user, <code>badger</code>.</p> 41 </body> 42 </html> 43 """ % (app_url, app_url), ContentType("text/html")), 44 u"???" : 45 StringResource(u""" 46 <html> 47 <head> 48 <link rel="openid2.provider openid.server" href="%s/login" /> 49 <link rel="openid2.local_id openid.delegate" href="%s/???" /> 50 <title>Home Page for ???</title> 51 </head> 52 <body> 53 <p>Home page for the OpenID authenticated user, <code>???</code>.</p> 54 </body> 55 </html> 56 """ % (app_url, app_url), ContentType("text/html", "iso-8859-1")), 57 "vole" : 58 StringResource(""" 59 <html> 60 <head> 61 <link rel="openid2.provider openid.server" href="%s/login" /> 62 <link rel="openid2.local_id openid.delegate" href="%s/vole" /> 63 <title>Vole's Home Page</title> 64 </head> 65 <body> 66 <p>Home page for the OpenID authenticated user, <code>vole</code>.</p> 67 </body> 68 </html> 69 """ % (app_url, app_url), ContentType("text/html")) 70 }) 71 72 # vim: tabstop=4 expandtab shiftwidth=4