About 2 or 3 months ago, folks who had been using Livejournal's openid to authenticate for crankypenguin stopped being able to use it. LJ responds with this error:
This is an OpenID server endpoint, not a human-readable resource. For more information, see http://openid.net/.
Crankypenguin is running 6.12, but I have tried this out on a vanilla install of 6.19 and have the same error.
I did some digging and found http://status.net/open-source/issues/2659 - which indicates a change in openID. I discussed with merlinofchaos before opening this issue :)
jcfiala also had an issue open with LJ over it (which I added the same information to, but hey, NO HELP THERE), so there's more than one of us, but admittedly it's probably a pretty small base of people having this issue.
| Comment | File | Size | Author |
|---|---|---|---|
| #29 | openid-redirect-5.patch | 15.82 KB | c960657 |
| #28 | openid-redirect-4.patch | 15.82 KB | c960657 |
| #25 | openid-redirect-3.patch | 16.1 KB | c960657 |
| #23 | openid-redirect-2.patch | 16.06 KB | c960657 |
| #17 | openid-redirect-1.patch | 16.04 KB | c960657 |
Comments
Comment #1
merlinofchaos commentedBased upon the information that status.net had, changing the "post" to a "get" on the form that redirects appears to be all that's necessary.
The attached patch is working for our site using openid with livejournal. It applies cleanly to both D7 and D6.
Since this bug makes openid non-functional with one of the core open id providers I'm upgrading this to major.
Comment #2
sin commentedI'm having this issue. Can't authenticate using livejournal.com, tried several Drupal 6 sites. The patch fixes the problem. Already patched 2 sites. Thanks!
Comment #3
damien tournoud commentedHm. Has someone opened an issue against the Livejournal implementation? Not accepting POST for an indirect communication is definitely against the spec.
For those wondering, it seems that OpenID switched from simple 302 redirects to either GET or POST redirects mainly to work around browsers limitations to the length of URLs [1].
[1] http://stackoverflow.com/questions/34623/why-is-html-form-redirection-us...
Comment #4
sunPinged @wojtha in IRC in the hope for a final decision on how to move forward here.
Comment #5
wojtha commented@sun l'll need to do some research, so I'm putting this in my personal queue...
Comment #6
wojtha commented#1: 965718-openid-broken-with-livejournal.patch queued for re-testing.
Comment #8
quicksketchReroll for Drupal 7/8. Patch above in #1 should still apply to Drupal 6.
Reading over the linked post in #3, the only reason you *wouldn't* use GET is if you're sending over a large amount of information in the query string. Considering Drupal core's Open ID implementation is only for authentication (not for attribute exchange or anything fancy like that), we shouldn't have any problems with this patch.
Comment #9
xjmTagging issues not yet using summary template.
Comment #10
catchIt's a shame this has stalled, I see the following that could be done, they are not mutually exclusive:
- just switch to GET instead of POST - if we do that we need a comment to explain why, so marking CNW.
- open a bug report against LiveJournal somewhere for not following the spec and wait for them to fix it.
Comment #11
Bojhan.core commentedTodo's seem clear.
Comment #12
esmerel commentedNote the OP - there was an issue posted with LJ over it :/ they aren't particularly interested in fixing it, it seems. I could find the issue if it's necessary.
Comment #13
damien tournoud commentedLet's implement GET-or-POST based on the size of the payload (FYI: 2000 bytes is widely considered a maximum size for an URL).
Comment #14
wojtha commented#12 esmerel... LJ, lazy bastards...
#13 Damien, yup, that finally sounds like a plan!
Comment #15
c960657 commentedThe bug on Livejournal has been fixed now:
http://code.livejournal.org/trac/livejournal/changeset/18185
But the bug in the underlying Perl library is still unresolved:
https://rt.cpan.org/Public/Bug/Display.html?id=42202
Using GET when possible (URL longer than 2000 bytes) is probably a good thing anyway (at least there is nothing in the OpenID spec that advices against it). It allows us to skip the intermediate page (flash of white) before redirecting to the OpenID Provider.
Comment #16
catchIf LiveJournal beat us to it, this feels no longer major to me, although still worth doing the switch on 2000 bytes I think.
Comment #17
c960657 commentedWith this patch we only use POST when needed (= if we are running OpenID 2.x, and the length of the GET URL would exceed the maximum URL length supported by MSIE).
Comment #19
c960657 commented#17: openid-redirect-1.patch queued for re-testing.
Comment #21
c960657 commented#17: openid-redirect-1.patch queued for re-testing.
Comment #22
c960657 commentedFYI this issue is sort of the counterpart of #1295096: With Clean URLs enabled: Undefined index: QUERY_STRING in _openid_response() (line 561 of .../modules/openid/openid.inc). That issue is about accepting both GET and POST on the Relying Party (i.e. Drupal) when the user is redirected from the Drupal site to the OpenID Provider, and this issue is about using either GET or POST when the user is redirected the other way, i.e. from the Drupal site to the OpenID Provider.
Comment #23
c960657 commentedReroll.
Comment #25
c960657 commentedComment #27
c960657 commented#25: openid-redirect-3.patch queued for re-testing.
Comment #28
c960657 commentedReroll.
Comment #29
c960657 commentedHere is a reroll for your reviewing pleasure :-)
Comment #30
swentel commentedopen id module is gone in D8
Comment #31
mgiffordPatch no longer applies.