[zorp-hu] WebDAV =?iso-8859-1?Q?m=E1sc?=
=?iso-8859-1?Q?=EDmre?=
Balazs Scheidler
bazsi@balabit.hu
Wed, 13 Nov 2002 14:30:20 +0100
On Wed, Nov 13, 2002 at 01:12:08PM +0100, Czakó Krisztián wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Idézet Balazs Scheidler 2002. november 12. 14:14 keltezésű leveléből:
> > HTTP_REQ_POLICY helyett HTTP_HDR_POLICY kell, amugy jo (ez sem problema, a
> > ketto ertek megegyezik numerikusan)
> > a fuggvenyed ilyen parametereket kap:
> > def filterAuth(self, hdr_name, hdr_value):
> > a hdr_name 'Authorization'-t tartalmaz, a hdr_value pedig annak az erteket.
> > Abban biztos vagy, hogy a php script letoltesehez GET-et hasznal WebDAV-on
> > keresztul is?
>
> Igen, nincs más kérés letöltésre (pedig jobb lenne egy DAVGET pl.).
>
> > ... megneztem, igen. valoszinuleg a webdav modul elhalassza a GET-et a
> > normal webszerver elol...
> > megneztem a DAV modul forrasat. a GET-re megnezi, hogy ismer-e adott nevu
> > resource-t, es ha igen o kezeli le, ha nem akkor tovabb engedi az
> > apache-nak.
> > most nincs tobb idom nezegetni, meg dav modul konfigot sem lattam meg,
> > egyenlore ennyit latok.
>
> A config egyszerű.
> Egy könyvtárra teszel Limit-et, és ott DAV on. Az apache (Limit) feladata az
> authentikáció elvégzése, azaz ha azt nem vagy rosszul csinálja, akkor megy a
> jogosulatlan hozzáférés.
> Az ajánlott megoldás a LimitExcept GET HEAD POST általában. Csak DAV-ot
> támogató szerveren ez lehet egyszerűbb (vaj'n miért nincs Limit ALL?).
>
> > ha le tudnad fogni URL alapjan (pl. a /webdav/ konyvtarban latod a teljes
> > tartalmat megegyszer), akkor egyszerubb lenne a dolog.
>
> Ezt pedig egy egyszerű Alias /webdav/ /path/to/the/web/dir/ opcióval meg lehet
> oldani. Kösz a tippet :)
>
> Lusta kérdés: mivel ellenőrzök regexpet (^http://[^/]+\.[^/]+./webdav/)
> pythonban?
>
> if hdr_value ~= '^http://[^/]+\.[^/]+./webdav/':
> self.session.server_address = SockAddrInet("davserver",9443)
> else:
> self.session.server_address = SockAddrInet("webserver",443)
import re
dav_pattern = re.compile('^http://[^/]+\.[^/]+./webdav/')
if dav_pattern.match(self.request_url):
...
else:
...
valami ilyesmi, bovebben re modul doksi.
--
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1