1.1 --- a/WebStack/Resources/OpenIDLogin.py Fri Nov 27 01:58:47 2009 +0100
1.2 +++ b/WebStack/Resources/OpenIDLogin.py Sat Nov 28 22:16:27 2009 +0100
1.3 @@ -63,9 +63,10 @@
1.4 def get_openid_fields(self, trans, claimed_id, local_id, username, return_to, endpoint):
1.5
1.6 # Make an association that can be used in signature verification.
1.7 + # NOTE: Encoding the handle to avoid problems with python-openid.
1.8 # NOTE: Probably need to consider the secret key a bit more.
1.9
1.10 - handle = username + str(time.time())
1.11 + handle = trans.encode_path(username, "utf-8") + str(time.time())
1.12 secret_key = str(random.randint(0, 999999999))
1.13 self.associations[handle] = secret_key
1.14
2.1 --- a/examples/Common/OpenIDLogin/__init__.py Fri Nov 27 01:58:47 2009 +0100
2.2 +++ b/examples/Common/OpenIDLogin/__init__.py Sat Nov 28 22:16:27 2009 +0100
2.3 @@ -7,6 +7,7 @@
2.4 from WebStack.Resources.ResourceMap import MapResource
2.5 from WebStack.Resources.Static import StringResource
2.6 from WebStack.Generic import ContentType
2.7 +import urllib
2.8
2.9 def get_site_map(app_url, deployment_url):
2.10
2.11 @@ -16,17 +17,22 @@
2.12 protocol, host and port, not including any path information.
2.13 """
2.14
2.15 + # NOTE: Support "special" username due to stupid HTML 4 restrictions.
2.16 +
2.17 + special_username = urllib.quote(u"זרו".encode("utf-8"))
2.18 +
2.19 login = OpenIDLoginResource(
2.20 app_url=app_url,
2.21 authenticator=Authenticator(
2.22 credentials=(
2.23 # Local identifier, username, password
2.24 - (( "badger", "badger"), "abc"),
2.25 - (( "vole", "vole"), "xyz"),
2.26 - ((u"זרו", u"זרו"), u"ֶ״ֵ"),
2.27 - (( "badger2", "badger"), "abc"),
2.28 - (( "vole2", "vole"), "xyz"),
2.29 - ((u"זרו2", u"זרו"), u"ֶ״ֵ"),
2.30 + ((deployment_url + "/badger", "badger"), "abc"),
2.31 + ((deployment_url + "/vole", "vole"), "xyz"),
2.32 + ((deployment_url + u"/זרו", u"זרו"), u"ֶ״ֵ"),
2.33 + ((deployment_url + "/badger2", "badger"), "abc"),
2.34 + ((deployment_url + "/vole2", "vole"), "xyz"),
2.35 + ((deployment_url + u"/זרו2", u"זרו"), u"ֶ״ֵ"),
2.36 + ((deployment_url + "/" + special_username, u"זרו"), u"ֶ״ֵ"),
2.37 )
2.38 )
2.39 )
2.40 @@ -43,42 +49,42 @@
2.41 <head>
2.42 <meta http-equiv="Content-Type" content="text/html; charset="iso-8859-1" />
2.43 <link rel="openid2.provider openid.server" href="%s/login" />
2.44 - <link rel="openid2.local_id openid.delegate" href="badger" />
2.45 + <link rel="openid2.local_id openid.delegate" href="%s/badger" />
2.46 <title>Badger's Home Page</title>
2.47 </head>
2.48 <body>
2.49 <p>Home page for the OpenID authenticated user, <code>badger</code>.</p>
2.50 </body>
2.51 </html>
2.52 - """ % deployment_url, ContentType("text/html")),
2.53 + """ % (deployment_url, deployment_url), ContentType("text/html")),
2.54 u"זרו" :
2.55 StringResource(u"""
2.56 <html>
2.57 <head>
2.58 <meta http-equiv="Content-Type" content="text/html; charset="iso-8859-1" />
2.59 <link rel="openid2.provider openid.server" href="%s/login" />
2.60 - <link rel="openid2.local_id openid.delegate" href="זרו" />
2.61 + <link rel="openid2.local_id openid.delegate" href="%s/%s" />
2.62 <title>Home Page for זרו</title>
2.63 </head>
2.64 <body>
2.65 <p>Home page for the OpenID authenticated user, <code>זרו</code>.</p>
2.66 </body>
2.67 </html>
2.68 - """ % deployment_url, ContentType("text/html", "iso-8859-1")),
2.69 + """ % (deployment_url, deployment_url, special_username), ContentType("text/html", "iso-8859-1")),
2.70 "vole" :
2.71 StringResource("""
2.72 <html>
2.73 <head>
2.74 <meta http-equiv="Content-Type" content="text/html; charset="iso-8859-1" />
2.75 <link rel="openid2.provider openid.server" href="%s/login" />
2.76 - <link rel="openid2.local_id openid.delegate" href="vole" />
2.77 + <link rel="openid2.local_id openid.delegate" href="%s/vole" />
2.78 <title>Vole's Home Page</title>
2.79 </head>
2.80 <body>
2.81 <p>Home page for the OpenID authenticated user, <code>vole</code>.</p>
2.82 </body>
2.83 </html>
2.84 - """ % deployment_url, ContentType("text/html")),
2.85 + """ % (deployment_url, deployment_url), ContentType("text/html")),
2.86
2.87 # OpenID 2.0 resources.
2.88 # See: http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.html#_Ref129424065
2.89 @@ -92,27 +98,27 @@
2.90 <Service xmlns="xri://$xrd*($v*2.0)">
2.91 <Type>http://specs.openid.net/auth/2.0/signon</Type>
2.92 <URI>%s/login</URI>
2.93 - <LocalID>badger2</LocalID>
2.94 + <LocalID>%s/badger2</LocalID>
2.95 </Service>
2.96 - """ % deployment_url, ContentType("application/xrd+xml")),
2.97 + """ % (deployment_url, deployment_url), ContentType("application/xrd+xml")),
2.98 u"זרו2" :
2.99 StringResource(u"""
2.100 <?xml version="1.0" encoding="iso-8859-1"?>
2.101 <Service xmlns="xri://$xrd*($v*2.0)">
2.102 <Type>http://specs.openid.net/auth/2.0/signon</Type>
2.103 <URI>%s/login</URI>
2.104 - <LocalID>זרו2</LocalID>
2.105 + <LocalID>%s/זרו2</LocalID>
2.106 </Service>
2.107 - """ % deployment_url, ContentType("application/xrd+xml", "iso-8859-1")),
2.108 + """ % (deployment_url, deployment_url), ContentType("application/xrd+xml", "iso-8859-1")),
2.109 "vole2" :
2.110 StringResource("""
2.111 <?xml version="1.0"?>
2.112 <Service xmlns="xri://$xrd*($v*2.0)">
2.113 <Type>http://specs.openid.net/auth/2.0/signon</Type>
2.114 <URI>%s/login</URI>
2.115 - <LocalID>vole2</LocalID>
2.116 + <LocalID>%s/vole2</LocalID>
2.117 </Service>
2.118 - """ % deployment_url, ContentType("application/xrd+xml")),
2.119 + """ % (deployment_url, deployment_url), ContentType("application/xrd+xml")),
2.120 })
2.121
2.122 # vim: tabstop=4 expandtab shiftwidth=4