[Zope] Session transferring problem

Chris McDonough chrism@zope.com
17 Apr 2003 09:41:51 -0400


Lubos,

Thanks!  I appreciate you filing the issue.  Out of curiosity, does the
URL0 solution work in most cases?

- C


On Thu, 2003-04-17 at 03:22, Lubos Culen wrote:
> Chris,
> 
> I see there was a bit misunderstanding in 'checked off' - I meant
> 'unchecked' :) I checked it on and it behaves as you wrote already. However,
> I will submit an bug issue into the bug collector.
> 
> Thanks,
> 
> -Lubos.
> 
> > -----Original Message-----
> > From: Chris McDonough [mailto:chrism@zope.com]
> > Sent: 16. dubna 2003 19:26
> > To: Lubos Culen
> > Cc: Zope mailinglist
> > Subject: RE: [Zope] Session transferring problem
> >
> >
> > Lubos,
> >
> > The workaround I gave does indeed work for the specific example you gave
> > in the last email.  I'm not sure how it behaves under other
> > circumstances.  I am not really sure there is a workaround that is
> > completely general.
> >
> > In the first example you give below where you tried URL0, it sounds like
> > you either visited the folder without the session data in the URL or
> > don't have URL munging turned on in the browser id manager.
> >
> > (Just in case:  I may have been unclear when I said "make sure the
> > 'automatically generate...' box is 'checked off'" in the last email, I
> > mean make sure that the "automatically generate..." checkbox is
> > *checked*.)
> >
> > The actual fix for the bug is to fix the BASE tag rendering. I've looked
> > at the code but haven't found a straightforward fix for it, and I'm out
> > of time.
> >
> > I'd suggest entering this issue into the bug collector at
> > collector.zope.org so we don't forget about it
> >
> > - C
> >
> >
> > On Wed, 2003-04-16 at 13:07, Lubos Culen wrote:
> > > Chris,
> > >
> > > I tried this, but it does doesn't seem to work.
> > >
> > > Using the <base href="" tal:attributes="href request/URL0"/>
> > >
> > > it generates:
> > >
> > > <base href="http://localhost:8080/path/to/www/index_html/" />
> > >
> > > (without session data, and the "<a href="testlink">" is not translated)
> > >
> > >
> > > I tried also <base href="" tal:attributes="href request/PATH_INFO"/>
> > > which displayed the session data when called, but it now displayed only
> > > <base href="/_ZopeId/98484417A0xKnA7xHio/path/to/www" />
> > > - which means that after clicking a link it went to a level
> > higher and it
> > > did not find it.
> > >
> > > Using this, I played with it a used more with combinations for href
> > > replacements like:
> > >
> > > - string:${request/SERVER_URL}${request/PATH_INFO}
> > > - string:${request/SERVER_URL}${request/PATH_INFO}/
> > > - string:${request/SERVER_URL}${request/PATH_INFO}/index_html
> > >
> > > , but I have not found any solution, which would be completely
> > stable and
> > > compatible. If it works for you, could you possibly send me a *.zexp
> > > example, which I could inspire from?
> > >
> > > Thanks and regards, Lubos.
> > >
> > > > -----Original Message-----
> > > > From: Chris McDonough [mailto:chrism@zope.com]
> > > > Sent: 16. dubna 2003 16:44
> > > > To: Lubos Culen
> > > > Cc: Zope mailinglist
> > > > Subject: RE: [Zope] Session transferring problem
> > > >
> > > >
> > > > Hi Lubos.
> > > >
> > > > As Oliver guessed, this is indeed a problem with the BASE tag
> > generated
> > > > by Zope.  This is a bug.
> > > >
> > > > To work around it, you can include an explicit BASE tag in index_html:
> > > >
> > > > <html>
> > > >   <head>
> > > >     <base href="" tal:attributes="href request/URL0"/>
> > > >     <title tal:content="template/title">The title</title>
> > > >   </head>
> > > >   <body>
> > > >    <span tal:content="structure here/content"></span>
> > > >   </body>
> > > > </html>
> > > >
> > > > I *wanted* to say tal:attributes="href here/absolute_url" in the base
> > > > tag above, but this doesn't do the right thing for some reason.
> > > >
> > > > - C
> > > >
> > > >
> > > >
> > > > On Wed, 2003-04-16 at 10:05, Lubos Culen wrote:
> > > > > Chris,
> > > > >
> > > > > thank you very much for detailed answer. I investigated a bit,
> > > > and I think
> > > > > the issue is here:
> > > > >
> > > > > Let's say I have DTML document called 'content' in folder
> > > > 'document'. Let's
> > > > > say I have link <a href="testlink">testlink</a> inside this
> > "content"
> > > > > document.
> > > > >
> > > > > Now, when I'm accessing *directly* the 'content' document from
> > > > the web (e.g.
> > > > > http://www.mysite.com/document/content ), then the link is
> > right encoded
> > > > > with Zope's session ID, exactly as you explained.
> > > > >
> > > > > BUT - when I'm accessing this 'content' document *indirectly*
> > > > (for example,
> > > > > through some ZPT Page template), then the URL session will not be
> > > > > maintained. Here is concrete example when this happens: if
> > I create Page
> > > > > Template at http://www.mysite.com/index_html , which will read
> > > > the "content"
> > > > > inside (using <span tal:content="structure
> > > > here/content"></span>), and if I
> > > > > will call http://www.mysite.com/document/ , it will display the
> > > > "content"
> > > > > document correctly, but the <a href="testlink"> it will
> > > > translate without
> > > > > session data. I tried also DTML Methods for templates instead
> > > > of ZPT, but
> > > > > the result was the same.
> > > > >
> > > > > During all the process, I have "Automatically Encode
> > Zope-Generated URLs
> > > > > With A Browser Id" in browser_id_manager switched off.
> > > > >
> > > > > Do you have any suggestions?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Lubos.
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Chris McDonough [mailto:chrism@zope.com]
> > > > > > Sent: 16. dubna 2003 15:32
> > > > > > To: Lubos Culen
> > > > > > Cc: Zope mailinglist
> > > > > > Subject: Re: [Zope] Session transferring problem
> > > > > >
> > > > > >
> > > > > > Hi Lubos,
> > > > > >
> > > > > > I unfortunately can't replicate this behavior.
> > > > > >
> > > > > > As long as you've got the "automatically encode
> > > > Zope-generated URLs with
> > > > > > a browser id" parameter checked off in your browser id
> > manager, and as
> > > > > > long as you don't provide *absolute* urls in your links, the URLs
> > > > > > rendered by the browser should indeed include the URL
> > fragments which
> > > > > > identify the session.
> > > > > >
> > > > > > OTOH, if you are providing absolute links in the content (links
> > > > > > beginning with a '/' or links that include a protocol like
> > > > "http://" in
> > > > > > them), the browser will not take into account the base
> > url of the page
> > > > > > and the link will be rendered as written.
> > > > > >
> > > > > > Eg:
> > > > > >
> > > > > > <a href="testlink">testlink</a>
> > > > > >
> > > > > > becomes a link to:
> > > > > >
> > > > > > http://localhost:8080/_ZopeId/30629499A0xKIYXTE4A/testlink
> > > > > >
> > > > > > <a href="/testlink">absolute testlink</a>
> > > > > >
> > > > > > becomes a link to:
> > > > > >
> > > > > > http://localhost:8080/testlink
> > > > > >
> > > > > > <a href="http://testlink">absolute testlink with protocol</a>
> > > > > >
> > > > > > becomes a link to:
> > > > > >
> > > > > > http://testlink
> > > > > >
> > > > > > If you see something different, please let me know.
> > > > > >
> > > > > > - C
> > > > > >
> > > > > >
> > > > > > On Wed, 2003-04-16 at 08:19, Lubos Culen wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > I have a page with session data transferring through the URLs,
> > > > > > so the page
> > > > > > > URLs in browser look like
> > > > > > >
> http://www.mysite.com/_ZopeId/84525053A0xJuPCpTSI/mydir/mydocument.
> > > > > >
> > > > > > Now, let's have DTML document called "content" inside the
> > > "mydocument"
> > > > > > folder, which contains some "static" HTML data (this data
> > > > > cannot be DTML,
> > > > > > because it needs to be editable with some WYSIWYG editor).
> > > Above these
> > > > > > folders is some ZPT template called index_html, which will
> > > display the
> > > > > > content data inside the some template.
> > > > > > Let's have some link in the "mydocument/content" document,
> > > which is for
> > > > > > example <a href="other_document">Link</a> . It is inside the
> > > > > content area
> > > > > > and it is linked *relatively*, so I suppose it should maintain
> > > > > the session
> > > > > > data (so the Zope's result URL would be
> > > > > >
> > > >
> > http://www.mysite.com/_ZopeId/84525053A0xJuPCpTSI/mydir/other_document ).
> > > > But the reality is bad - result URL is only
> > > > http://www.mysite.com/mydir/other_document and the session data is
> lost.
> > > >
> > > > So, the question is, is there *any* way how to maintain URL sessions
> > when
> > > > linking relatively inside plain content (non-DTML and non-ZPT)
> document
> > in
> > > > Zope? Or, if not, how people use to solve this problem generally, when
> > > need
> > > > to transfer non-cookie session data through static <a href="...">
> URLs?
> > > >
> > > > Thanks for the answer,
> > > >
> > > > Lubos.
> > > >
> > > >
> > > > _______________________________________________
> > > > Zope maillist  -  Zope@zope.org
> > > > http://mail.zope.org/mailman/listinfo/zope
> > > > **   No cross posts or HTML encoding!  **
> > > > (Related lists -
> > > >  http://mail.zope.org/mailman/listinfo/zope-announce
> > > >  http://mail.zope.org/mailman/listinfo/zope-dev )
> > >
> >
>