chrismessina / diso

Automatically exported from code.google.com/p/diso
0 stars 0 forks source link

Cannot use main blog URL as OpenID #153

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Set self (admin) as blog owner in plugin settings
2. Attempt to log in somewhere (e.g. StackOverflow) using root URL

What is the expected output? What do you see instead?
Expected output is a redirect to plugin's OpenID authorization page.
What actually happens is a failure; calling site displays "The remote site
returned an error: (503) Server Unavailable"

What version of the product are you using? On what operating system?
OpenID 3.3.2 with XRDS-Simple 1.0 on DreamHost Linux shared server under
PHP 5.2.9. WordPress 2.8.6

Please provide any additional information below.
Logging in using /author/admin/ works. Logging in using blog home page
appears to work if WP Super Cache is turned off. Logging in seems to fail
if either WP Super Cache or MobilePress are enabled.

Original issue reported on code.google.com by voyagerfan5761 on 19 Nov 2009 at 2:41

GoogleCodeExporter commented 9 years ago
Update: Seem to have fixed the WP Super Cache issue by adding '/openid/' to the
string exclude box in the settings. Still needed to comment out the 
session_start();
call at the top of MobilePress, though.

However, I think this bug is now redundant; please close as invalid.

Original comment by voyagerfan5761 on 21 Nov 2009 at 11:21

GoogleCodeExporter commented 9 years ago
Another update: I don't know what's going on, but despite excluding all URLs
containing 'openid' from WP Super Cache, I can't log in as the root domain any 
more.
(It worked for a while there... now it's broke.) Logging in with 
/author/username/
works fine, but I don't want to use that.

The error returned by StackOverflow is now "No OpenID Endpoint found".

Turning WP Super Cache OFF completely causes the login to work even with the 
root
domain, so this issue is definitely a compatibility problem with the WPSC 
plugin. If
I have the time at some point, I'll investigate, but it would be difficult 
since I
don't really know how this plugin works. However, WPSC developer Donncha O 
Caoimh
maintains a website at http://ocaoimh.ie/ where a developer more familiar with 
how
the OpenID and XRDS-Simple plugins work could get in touch and maybe work 
together to
fix compatibility between the plugins.

Original comment by voyagerfan5761 on 24 Mar 2010 at 9:04

GoogleCodeExporter commented 9 years ago
I presume it doesn't work because the main page is cached. You'll have to 
modify the 
.htaccess rules to exclude requests from openid clients if supercached, or 
create a 
supercache plugin that changes the cache_key for those clients.

What does an openid request look like? Is it a POST or a GET? Are there GET 
parameters?

Original comment by donn...@gmail.com on 24 Mar 2010 at 9:15

GoogleCodeExporter commented 9 years ago
Adding 'xrds' to the exclusion list and deleting the home page from the cache 
worked.

The problem with writing a rule to bypass the cache for OpenID consumer 
requests is,
everyone's requests look different. There's no good way to do it. For now, 
disabling
caching of the home page is a good workaround.

There are two headers added by the OpenID and/or XRDS-Simple plugins: 
X-XRDS-Location
and X-Yadis-Location. Could Super Cache be made to include a <meta
http-equiv="X-XRDS-Location" /> tag in the HTML header of cached files? The 
problem
stems from the fact that when a cached page is served, the XRDS headers (upon 
which
OpenID consumers seem to rely) are absent. The meta tag alternatives exist to 
work
around server configs that don't support extra headers, but could easily be 
used to
work around caching issues like this, too.

Yes, I could add the meta tag to my theme manually... But I like to try and 
design
things to require as little user intervention as possible.

Finally, if I work around the header issue, will Super Cache also cache the
domain.tld/?xrds page?

Original comment by voyagerfan5761 on 24 Mar 2010 at 9:51

GoogleCodeExporter commented 9 years ago
You could force WP Super Cache to fire off the "init" action after WordPress 
has loaded. 
See the "late init" configuration in the Developer Docs. Caching won't be quite 
as 
efficient and you have to run the plugin in "half on" mode.

I presume the XRDS plugin fires on init or earlier so it can send the headers, 
but you'll 
probably have to modify the theme to use the mfunc() functions to insert the 
right meta 
tags.

Original comment by donn...@gmail.com on 25 Mar 2010 at 8:27