X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fopenid%2Fserv_openid_rp.c;h=e2ff01f6d12a34a223233987caddc308df182811;hb=9b75e54a170bc310ba800e45e9ac00131114d3ad;hp=9f8d03098b7a54272898c04d75a99f6ba2ba1b55;hpb=b55bc57b1a3f02fd09936594c6321e42bf081589;p=citadel.git diff --git a/citadel/modules/openid/serv_openid_rp.c b/citadel/modules/openid/serv_openid_rp.c index 9f8d03098..e2ff01f6d 100644 --- a/citadel/modules/openid/serv_openid_rp.c +++ b/citadel/modules/openid/serv_openid_rp.c @@ -257,7 +257,7 @@ void cmd_oida(char *argbuf) { cprintf("000\n"); } - +#if 0 /* * Attempt to register (populate the vCard) the currently-logged-in user * using the data from Simple Registration Extension, if present. @@ -338,6 +338,7 @@ void populate_vcard_from_sreg(HashList *sreg_keys) { } vcard_free(v); } +#endif /* @@ -361,7 +362,7 @@ void cmd_oidc(char *argbuf) { if (CC->logged_in) { attach_openid(&CC->user, oiddata->claimed_id); if (oiddata->sreg_keys != NULL) { - populate_vcard_from_sreg(oiddata->sreg_keys); + /* populate_vcard_from_sreg(oiddata->sreg_keys); */ } } @@ -434,7 +435,7 @@ int openid_create_user_via_sreg(StrBuf *claimed_id, HashList *sreg_keys) snprintf(new_password, sizeof new_password, "%08lx%08lx", random(), random()); CtdlSetPassword(new_password); attach_openid(&CC->user, claimed_id); - populate_vcard_from_sreg(sreg_keys); + /* populate_vcard_from_sreg(sreg_keys); */ return(0); } @@ -683,10 +684,7 @@ int parse_xrds_document(StrBuf *ReplyBuf) { struct xrds xrds; int return_value = 0; - syslog(LOG_DEBUG, - " --- XRDS DOCUMENT BEGIN --- \n%s\n --- XRDS DOCUMENT END ---", - ChrPtr(ReplyBuf) - ); + /* syslog(LOG_DEBUG, "XRDS document:\n%s\n", ChrPtr(ReplyBuf)); */ memset(&xrds, 0, sizeof (struct xrds)); xrds.selected_service_priority = INT_MAX; @@ -918,7 +916,8 @@ void cmd_oids(char *argbuf) { RedirectUrl = NewStrBufDup(oiddata->op_url); - StrBufAppendBufPlain(RedirectUrl, HKEY("?openid.ns=http:%2F%2Fspecs.openid.net%2Fauth%2F2.0"), 0); + StrBufAppendBufPlain(RedirectUrl, HKEY("?openid.ns="), 0); + StrBufUrlescAppend(RedirectUrl, NULL, "http://specs.openid.net/auth/2.0"); StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.mode=checkid_setup"), 0); @@ -928,14 +927,35 @@ void cmd_oids(char *argbuf) { StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.identity="), 0); StrBufUrlescAppend(RedirectUrl, oiddata->claimed_id, NULL); + /* return_to completes the round trip */ StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.return_to="), 0); StrBufUrlescAppend(RedirectUrl, return_to, NULL); -/* - We probably have to do something here to set up Simple Registration - StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.sreg.optional="), 0); - StrBufUrlescAppend(RedirectUrl, NULL, "nickname,email,fullname,postcode,country,dob,gender"); -*/ + /* Attribute Exchange + * See: + * http://openid.net/specs/openid-attribute-exchange-1_0.html + * http://code.google.com/apis/accounts/docs/OpenID.html#endpoint + * http://test-id.net/OP/AXFetch.aspx + */ + + StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.ns.ax="), 0); + StrBufUrlescAppend(RedirectUrl, NULL, "http://openid.net/srv/ax/1.0"); + + StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.ax.mode=fetch_request"), 0); + + StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.ax.required=firstname,lastname,friendly,nickname"), 0); + + StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.ax.type.firstname="), 0); + StrBufUrlescAppend(RedirectUrl, NULL, "http://axschema.org/namePerson/first"); + + StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.ax.type.lastname="), 0); + StrBufUrlescAppend(RedirectUrl, NULL, "http://axschema.org/namePerson/last"); + + StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.ax.type.friendly="), 0); + StrBufUrlescAppend(RedirectUrl, NULL, "http://axschema.org/namePerson/friendly"); + + StrBufAppendBufPlain(RedirectUrl, HKEY("&openid.ax.type.nickname="), 0); + StrBufUrlescAppend(RedirectUrl, NULL, "http://axschema.org/namePerson/nickname"); syslog(LOG_DEBUG, "OpenID: redirecting client to %s", ChrPtr(RedirectUrl)); cprintf("%d %s\n", CIT_OK, ChrPtr(RedirectUrl)); @@ -1128,7 +1148,7 @@ void cmd_oidf(char *argbuf) { else { cprintf("\n"); } - syslog(LOG_DEBUG, "The desired Simple Registration name is already taken."); + syslog(LOG_DEBUG, "The desired display name is already taken."); } } }