[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