[zorp-hu] WebDAV =?iso-8859-1?Q?m=E1s_?= =?iso-8859-1?Q?c=EDmre?=

Balazs Scheidler bazsi@balabit.hu
Tue, 12 Nov 2002 09:35:04 +0100


On Tue, Nov 12, 2002 at 12:58:29AM +0100, Czakó Krisztián wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hello,
> 
> Nagyjából összejött, amit az lmekonfon beszéltünk, azaz:
> - - 1 IP-n sok virtualhost (standard apache namevirtualhost-ok)
> - - https
> - - WebDAv úgy, hogy a DAV kéréseket más címre küldjük, mint a normál https 
> kéréseket
> 
> Eygetlen mellékhatása van (kérdezze meg kezelőorvosát, gyógyszerészét:), hogy 
> WebDAV kérés után a következő bárhonnan jövő kérést is a webdavos szervernek 
> küld. De csak az elsőt, azaz ha az ilyenkor jövő authentikációs kérésre 
> mégsemet mondok, bejön a kért lap.
> 
> A megoldás annyira pofonegyszerű, hogy az már fáj :)
> 
> A HttpProxy-ból származtaott osztályunkba ez kell:
> self.session.service.dnat=""
> self.request["OPTIONS"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["PROPFIND"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["PUT"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["DELETE"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["MKCOL"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["PROPPATCH"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["COPY"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["MOVE"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["LOCK"]  = (HTTP_REQ_POLICY, self.filterDAV)
> self.request["UNLOCK"]  = (HTTP_REQ_POLICY, self.filterDAV)
> 
> A PUT esetét óvatosan, hátha kell "normál" módban is.
> 
> A filterDAV:
> def filterDAV(self, method, url, version):
>    self.session.service.dnat = StaticNAT(SockAddrInet("davserver-címe",9443))
>    return HTTP_REQ_ACCEPT

ezzel egyetlen problema van megpedig az, hogy ezzel folyamatosan valtoztatod
a Service deklaraciot. Jobban jarsz, ha router=InbandRouter-t hasznalsz, es
a self.session.server_address-t irod at (oda csak a sockaddrinet kell, mas
nem)

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1