1 #!/usr/bin/env python 2 3 "An OpenID login example with some local user pages." 4 5 from WebStack.Resources.OpenIDLogin import OpenIDLoginResource, Authenticator 6 from WebStack.Resources.ResourceMap import MapResource 7 from WebStack.Resources.Static import StringResource 8 from WebStack.Generic import ContentType 9 10 def get_site_map(app_url): 11 12 "Return a resource for the site having the given 'app_url'." 13 14 return MapResource({ 15 "login" : 16 OpenIDLoginResource( 17 app_url=app_url, 18 authenticator=Authenticator( 19 credentials=( 20 # Local identifier, username, password 21 ((app_url + "/badger", "badger"), "abc"), 22 ((app_url + "/vole", "vole"), "xyz"), 23 ) 24 ) 25 ), 26 27 # Some local OpenID pages. 28 29 "badger" : 30 StringResource(""" 31 <html> 32 <head> 33 <link rel="openid2.provider openid.server" href="%s/login" /> 34 <link rel="openid2.local_id openid.delegate" href="%s/badger" /> 35 <title>Badger's Home Page</title> 36 </head> 37 <body> 38 <p>Home page for the OpenID authenticated user, <code>badger</code>.</p> 39 </body> 40 </html> 41 """ % (app_url, app_url), ContentType("text/html")), 42 "vole" : 43 StringResource(""" 44 <html> 45 <head> 46 <link rel="openid2.provider openid.server" href="%s/login" /> 47 <link rel="openid2.local_id openid.delegate" href="%s/vole" /> 48 <title>Vole's Home Page</title> 49 </head> 50 <body> 51 <p>Home page for the OpenID authenticated user, <code>vole</code>.</p> 52 </body> 53 </html> 54 """ % (app_url, app_url), ContentType("text/html")) 55 }) 56 57 # vim: tabstop=4 expandtab shiftwidth=4