[Zope] VIRTUAL_URL Failure

George Lee georgeleejr at gmail.com
Wed Nov 9 10:10:25 EST 2005


Two main questions:
  (1) Does anybody *have* good documentation on VIRTUAL_URL and how it
interacts with CookieCrumbler and VirtualHostMonster?
  (2) Does anyone know how to debug VirtualHostMonster or other Python
libraries while running a Zope instance (it lives in Python not in
Zope, so I don't know if I change the code there if those changes will
actually get executed)?



For people who care to read more about what I think is going on:

> Well, where is VIRTUAL_URL documented? Why doesn't Plohn do something
> sane if it's not there?

It's not Plone's issue from what I can tell. CookieCrumbler, which
lives in CMF, does do something sane if VIRTUAL_URL is not there -- it
tries to create a substitute URL.

VIRTUAL_URL is set by the VirtualHostMonster. Does anyone know how to
debug it? Because it is in the python directories used to build Zope,
not in a Zope product which I know how to debug. (Is there a way to
restart python to register changes in VirtualHostMonster.py)?

Here is what I can tell of what is going on:

(1) VIRTUAL_URL is supposed to return the actual URL when there is a
Virtual Hosting Monster, for instance http://subdomain.mydomain.org
instead of http://ip:port/path/to/subdomain/object or
http://mydomain.org/path/to/subdomain/object.

(2) There's an Apache rewrite rule set to transform URL requests like
http://subdomain.org to
http://ip:port/VirtualHostBase/http/subdomain.mydomain.org before they
get sent into Zope.

(3) When VirtualHostMonster receives a request like
http://ip:port/VirtualHostBase/http/subdomain.mydomain.org, it is
supposed to return the currect object at
http://ip:port/path/to/subdomain/object and set a variable VIRTUAL_URL
http://subdomain.mydomain.org in the REQUEST variable.

(4) When navigating to an authenticated-only page, CMFCore's
CookieCrumbler sets a "came_from" variable to remember where to go. To
set the "came_from" variable, it first looks for VIRTUAL_URL. If it
doesn't find it, it uses another method to set "came_from" -- but this
returns an URL, and one that does not work.

(5) During login in Plone to a authenticated-only page, it uses
CMFCore's CookieCrumbler came_from variable.





>
> > I'm wondering if CookieCrumbler is supposed
> > to set VIRTUAL_URL given that there's a VHM installed and doesn't?
>
> It's probably some code in the publisher or vhm. Maybe it's something
> that didn't get merged from a branch or the trunk.
>
> Your best bet is to come up with minimal (ie: no plone, no cookie
> crumbler, etc) way to reproduce this and file a bug report in the collector.
>
> Oh, and grab yourself a copy of grep and see where this should be
> defined ;-)
>
> cheers,
>
> Chris
>
> --
> Simplistix - Content Management, Zope & Python Consulting
>             - http://www.simplistix.co.uk
>
>


More information about the Zope mailing list