[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