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