<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Joachim,<div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>I just discovered it by navigating the registries</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>Annick<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Le 13 avr. 2021 à 11:03, <a href="mailto:jtuchel@objektfabrik.de" class="">jtuchel@objektfabrik.de</a> a écrit :</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
<div class="">
<div class="moz-cite-prefix">Hi Annick,</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">thanks a lot for this information.
Would've saved my sunday ;-) <br class="">
</div>
<div class="moz-cite-prefix">I tried a few "something"s in that
direction but failed, so I ended up rewriting the whole thing to
using WADocumentHandler. I am happy with the results for now, but
there is a feeling of "maybe it is not going to be flexible enough
in the future". So it is good to know this. I liked the way a
WAFileHandler worked in my dev image. <br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">I wonder where/how you found this info?<br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">Joachim<br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">Am 12.04.21 um 09:51 schrieb List:<br class="">
</div>
<blockquote type="cite" cite="mid:EDBBB7EB-BF0B-4573-8C5F-3D1D1B10C3E6@afceurope.com" class="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
Hi Joachim,
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>You
can register your files in a composite url by using 2 steps
(for instance clubs/fichiers)</div>
<div class=""><br class="">
</div>
<div class="">(Seaside.WAAdmin defaultDispatcher handlers at:
'clubs')<br class="">
register: Seaside.WAFileHandler default<br class="">
at: 'fichiers’.</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>Annick<br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">Le 11 avr. 2021 à 14:11, <a href="mailto:jtuchel@objektfabrik.de" class="" moz-do-not-send="true">jtuchel@objektfabrik.de</a> a
écrit :</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
<div class=""><p class="">I solved the problem differently, because
this was going to be complicated...</p><p class="">I just found that WADocumentHandler is quite
exactly what I was looking for. It even has a few
advantages for my use case: it doesn't even need to
transport any information about the file to the
Browser, it just renders a _d parameter and is only
valid within the session. A pity that I overlooked
this at my first attempt to solve the problem. It took
me a few hours to rewrite things and now I have what I
wanted: I can serve files which have no guessable URLs
and can only be served within a session. <br class="">
</p><p class="">It also solves the Apache Load Balancer
problem, because the IMG or A paramters are URLs
within /MyApp, just like any other component. So no
need to register it in any location that can be
handled correctly by mod_proxy_balancer and stuff. <br class="">
</p><p class=""><br class="">
</p><p class="">Thanks for listening and have a nice
rest-of-the-weekend!</p><p class=""><br class="">
</p><p class="">Joachim<br class="">
</p><p class=""><br class="">
</p><p class=""><br class="">
</p>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">Am 11.04.21 um 07:45
schrieb <a class="moz-txt-link-abbreviated" href="mailto:jtuchel@objektfabrik.de" moz-do-not-send="true">jtuchel@objektfabrik.de</a>:<br class="">
</div>
<blockquote type="cite" cite="mid:d216e014-3ccb-d8bf-4434-9577ed68cf31@objektfabrik.de" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
<div class="moz-cite-prefix">Esteban,</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">I used your suggestion
and it works very nicely. In development ;-)</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">Here are 2 things I
encountered in a deployed image</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">
<ol class="">
<li class="">If the _s parameter is not the first
one in the URL, the tracking Strategy will
always return a nil key. Not sure why,
especially in the light of the fact that this
works fine in a dev image</li>
<li class="">I have troubles getting things to
work behind a load-balancing Apache because of
the path. This one is really critical to me, let
me explain:</li>
</ol><p class="">I have configured Apache with
mod_proxy_balancer to distribute load in sticky
sessions to a few images who all listen to <font class="" face="monospace">localhost:xxxx/MyApp</font>.
Since my Pseudo-FileLibrary needs the session
context, it is necessary that all traffic of a
session goes to the same image. So far, so
well-known and logical.</p><p class="">The trouble is: my Application ist
registered at: <font class="" face="monospace">/MyApp</font>,
while the Pseudo-FileLibrary is registered at: <font class="" face="monospace">/documents</font></p><p class="">This means that Apache
mod_proxy_balancer will redirect all requests that
get sent to <font class="" face="monospace"><a class="moz-txt-link-freetext" href="https://mydomain/documents" moz-do-not-send="true">https://mydomain/documents</a>
</font>to <font class="" face="monospace"><a class="moz-txt-link-freetext" href="https://mydomain/MyApp" moz-do-not-send="true">https://mydomain/MyApp</a></font>,
which means a link or img tag points to the login
page instead of a document served by my Pseudo
File Library. The Pseudo File Library never gets
to see a request...<br class="">
</p><p class="">I couldn't find a way to register a
WARequestHandler subclass as a sub-path of a
registered App. Because what I need is to register
my Handler at /MyApp/documents. <br class="">
</p><p class=""><font class="" face="monospace">WAAdmin
register: MyHandler at: 'MyApp/documents' </font><br class="">
</p><p class="">throws an error: <font class="" face="monospace">MyHandler doesNotUnderstand:
key:.</font></p>
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">So: how can I register a
WARequestHandler at a subpath like /MyApp/documents?</div>
<div class="moz-cite-prefix">Or, alternatively: how
can I redirect incoming requests for <font class="" face="monospace">/MyApp/documents</font> to <font class="" face="monospace">/documents</font> within
my image? (It seems hard to impossible to configure
this on the Apache side...)<br class=""><p class=""><br class="">
</p><p class="">Any ideas or hints?</p><p class=""><br class="">
</p><p class=""><br class="">
</p><p class="">Joachim<br class="">
</p><p class=""><br class="">
</p><p class=""><br class="">
</p>
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix"><br class="">
</div>
<div class="moz-cite-prefix">Am 30.03.21 um 14:54
schrieb Esteban Maringolo:<br class="">
</div>
<blockquote type="cite" cite="mid:CAJMgPCKaoDL=koM_HchCC-BJPJg2qb34Q+xPPRWebP=GkV2rrA@mail.gmail.com" class="">
<pre class="moz-quote-pre" wrap="">On Tue, Mar 30, 2021 at 6:51 AM Sven Van Caekenberghe <a class="moz-txt-link-rfc2396E" href="mailto:sven@stfx.eu" moz-do-not-send="true"><sven@stfx.eu></a> wrote:
</pre>
<blockquote type="cite" class="">
<pre class="moz-quote-pre" wrap="">I would try to look at WAFileHandler, which is responsible for serving the files.
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">I thought about the same approach.
1. Implement some WARestrictedFileHandler subclass of WAFileHandler,
where you configure (via a preference or plain instVar) the identifier
of the app that has the session registry (e.g. 'myApp')
2. In the handleFiltered: you get a reference to that WAApplication
and then you do something like:
handleFiltered: aRequestContext
| app key session |
app := WAAdmin defaultDispatcher handlerAt: 'myApp'.
key := app trackingStrategy keyFromContext: aRequestContext.
key isNil
ifTrue: [ "generate the 403 response" ]
ifFalse: [
session := app cache at: key ifAbsent: [ nil ].
session isNil
ifTrue: [ "generate 403" ]
ifFalse: [ ("check whether session is valid" ) ifTrue: [^super
handleFiltered: aRequestContext] ifFalse: ["403..."]
]
]
So the approach is to externally access the app session registry and
fetch the session from there.
What is not clear to me is whether you want to restrict access to
regular Seaside FileLibraries or to some other mapping to static files
in a filesystem.
Regards,
Esteban A. Maringolo
_______________________________________________
seaside mailing list
<a class="moz-txt-link-abbreviated" href="mailto:seaside@lists.squeakfoundation.org" moz-do-not-send="true">seaside@lists.squeakfoundation.org</a>
<a class="moz-txt-link-freetext" href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" moz-do-not-send="true">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a>
</pre>
</blockquote><p class=""><br class="">
</p>
<pre class="moz-signature" cols="72">--
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel <a class="moz-txt-link-freetext" href="mailto:jtuchel@objektfabrik.de" moz-do-not-send="true">mailto:jtuchel@objektfabrik.de</a>
Fliederweg 1 <a class="moz-txt-link-freetext" href="http://www.objektfabrik.de/" moz-do-not-send="true">http://www.objektfabrik.de</a>
D-71640 Ludwigsburg <a class="moz-txt-link-freetext" href="http://joachimtuchel.wordpress.com/" moz-do-not-send="true">http://joachimtuchel.wordpress.com</a>
Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1
</pre>
<br class="">
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
seaside mailing list
<a class="moz-txt-link-abbreviated" href="mailto:seaside@lists.squeakfoundation.org" moz-do-not-send="true">seaside@lists.squeakfoundation.org</a>
<a class="moz-txt-link-freetext" href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" moz-do-not-send="true">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a>
</pre>
</blockquote><p class=""><br class="">
</p>
<pre class="moz-signature" cols="72">--
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel <a class="moz-txt-link-freetext" href="mailto:jtuchel@objektfabrik.de" moz-do-not-send="true">mailto:jtuchel@objektfabrik.de</a>
Fliederweg 1 <a class="moz-txt-link-freetext" href="http://www.objektfabrik.de/" moz-do-not-send="true">http://www.objektfabrik.de</a>
D-71640 Ludwigsburg <a class="moz-txt-link-freetext" href="http://joachimtuchel.wordpress.com/" moz-do-not-send="true">http://joachimtuchel.wordpress.com</a>
Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1
</pre>
</div>
_______________________________________________<br class="">
seaside mailing list<br class="">
<a href="mailto:seaside@lists.squeakfoundation.org" class="" moz-do-not-send="true">seaside@lists.squeakfoundation.org</a><br class="">
<a class="moz-txt-link-freetext" href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
<br class="">
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
seaside mailing list
<a class="moz-txt-link-abbreviated" href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a>
<a class="moz-txt-link-freetext" href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a>
</pre>
</blockquote><p class=""><br class="">
</p>
<pre class="moz-signature" cols="72">--
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel <a class="moz-txt-link-freetext" href="mailto:jtuchel@objektfabrik.de">mailto:jtuchel@objektfabrik.de</a>
Fliederweg 1 <a class="moz-txt-link-freetext" href="http://www.objektfabrik.de/">http://www.objektfabrik.de</a>
D-71640 Ludwigsburg <a class="moz-txt-link-freetext" href="http://joachimtuchel.wordpress.com/">http://joachimtuchel.wordpress.com</a>
Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1
</pre>
</div>
_______________________________________________<br class="">seaside mailing list<br class=""><a href="mailto:seaside@lists.squeakfoundation.org" class="">seaside@lists.squeakfoundation.org</a><br class="">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside<br class=""></div></blockquote></div><br class=""></div></body></html>