diff src/ur/openid.ur @ 15:35bc4da563dd

Realms; documentation and license
author Adam Chlipala <adam@chlipala.net>
date Sun, 02 Jan 2011 11:22:30 -0500
parents 6b2a44da71b0
children df2eb629f21a
line wrap: on
line diff
--- a/src/ur/openid.ur	Sun Jan 02 10:33:07 2011 -0500
+++ b/src/ur/openid.ur	Sun Jan 02 11:22:30 2011 -0500
@@ -376,6 +376,10 @@
                     return (Some "Wrong return_to in OP response")
                 else
                     return None
+
+        val realmString = case r.Realm of
+                              None => ""
+                            | Some realm => "&openid.realm=" ^ realm
     in
         dy <- discover r.Identifier;
         case dy of
@@ -385,7 +389,7 @@
                 Stateless =>
                 redirect (bless (dy ^ "?openid.ns=http://specs.openid.net/auth/2.0&openid.mode=checkid_setup&openid.claimed_id="
                                  ^ r.Identifier ^ "&openid.identity=http://specs.openid.net/auth/2.0/identifier_select&openid.return_to="
-                                 ^ show (effectfulUrl returnTo)))
+                                 ^ show (effectfulUrl returnTo) ^ realmString))
               | Stateful ar =>
                 assoc <- association ar.AssociationType ar.AssociationSessionType dy;
                 case assoc of
@@ -394,7 +398,7 @@
                   | Association assoc =>
                     redirect (bless (dy ^ "?openid.ns=http://specs.openid.net/auth/2.0&openid.mode=checkid_setup&openid.claimed_id="
                                      ^ r.Identifier ^ "&openid.identity=http://specs.openid.net/auth/2.0/identifier_select&openid.assoc_handle="
-                                     ^ assoc.Handle ^ "&openid.return_to=" ^ show (effectfulUrl returnTo)))
+                                     ^ assoc.Handle ^ "&openid.return_to=" ^ show (effectfulUrl returnTo) ^ realmString))
     end
 
 task periodic 1 = fn () =>