annotate tests/utest.ur @ 58:9f392276d614

Graceful handling of OpenID providers that log the user in as the wrong identifier
author Adam Chlipala <adam@chlipala.net>
date Tue, 09 Aug 2011 09:53:40 -0400
parents df258dbf4739
children 089ad1d33e2f
rev   line source
adam@19 1 style inputs
adam@19 2
adam@19 3 structure U = OpenidUser.Make(struct
adam@19 4 con cols = [Nam = string]
adam@19 5
adam@19 6 val sessionLifetime = 3600
adam@19 7 val afterLogout = bless "/main"
adam@19 8 val secureCookies = False
adam@19 9 val association = Openid.Stateful {AssociationType = Openid.HMAC_SHA256,
adam@19 10 AssociationSessionType = Openid.NoEncryption}
adam@58 11 val realm = Some "http://localhost:8080/"
adam@19 12
adam@19 13 val creationState =
adam@19 14 n <- source "";
adam@19 15 return {Nam = n}
adam@19 16
adam@19 17 fun render r = <xml>
adam@19 18 <tr> <th class={inputs}>Name:</th> <td><ctextbox source={r.Nam}/></td> </tr>
adam@19 19 </xml>
adam@19 20
adam@21 21 fun ready _ = return True
adam@21 22
adam@19 23 fun tabulate r =
adam@19 24 n <- signal r.Nam;
adam@19 25 return {Nam = n}
adam@19 26
adam@29 27 fun choose _ r = return (OpenidUser.Success r)
adam@19 28
adam@19 29 val formClass = inputs
adam@23 30
adam@23 31 val fakeId = None
adam@32 32
kkallio@36 33 structure CtlDisplay = OpenidUser.DefaultDisplay
adam@19 34 end)
adam@19 35
adam@19 36 fun wrap title body =
adam@19 37 userStuff <- U.main wrap;
adam@19 38 return <xml><head>
adam@19 39 <title>{[title]}</title>
adam@19 40 </head><body>
adam@25 41 {userStuff.Status}<br/>
kkallio@36 42 {userStuff.Other.Xml}
adam@19 43
adam@19 44 <h1>{[title]}</h1>
adam@19 45
adam@19 46 {body}
adam@19 47 </body></xml>
adam@19 48
adam@19 49 fun main () =
adam@19 50 whoami <- U.current;
adam@19 51 wrap "Main page" (case whoami of
adam@19 52 None => <xml>I don't think you're logged in.</xml>
adam@19 53 | Some whoami => <xml>Apparently you are <b>{[whoami]}</b>!</xml>)