<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>