On Tue, Nov 12, 2002 at 12:19:27PM +0100, Czakó Krisztián wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Idézet Balazs Scheidler 2002. november 12. 09:35 keltezésű leveléből:
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
Az a probléma viszont még fennáll, hogy ha nem ugyanabban a sessionben a kliens küld egy GET kérést akkor az rosszhelyen landol. Ha van valakinek ötlete, hogyan lehet megfogni a DAV-os GET-et, szóljon. Mondjuk az authentikáció jellemző rá, de az ugye jogos a normál esetben is. Az apache valahonnan tudja a különbséget, mert ha egy php scriptet kérek sima GET-el, akkor végrehajtja, ha DAV-al csinálom odaadja a forrását. Gyanítom az authentikációm számít, de a Zorp szintjén nem tudom dekódolni az azonosítót.
Pl. a cadaver ezeket küldi: User-Agent: cadaver/0.18.0 neon/0.16.1 Connection: TE TE: trailers Host: webhome.hu:443 Authorization: Basic c2yhcLljOuPsdG6r
Digest auth esetén jobb a helyzet: Authorization: Digest username="slapic", realm="WebDAV" Itt a realm segíthet, feltéve ha nem jut eszébe valakinek a normál módban is WebDAV realmet használni, de ne jusson :) Melyik változóban találom meg a fejléc tartalmát? Azaz ha csinálok egy ilyet: self.request_header["Authorization"] = (HTTP_REQ_POLICY, self.filterAUTH) Akkor a filterAUTH mit kap meg?
És ez sem tökéletes, mert kevés kliens kezeli. Mondjuk cadaver jó, konqueror elszáll mint a győzelmi zászló, sitecopyt nem próbáltam.
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? ... 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. ha le tudnad fogni URL alapjan (pl. a /webdav/ konyvtarban latod a teljes tartalmat megegyszer), akkor egyszerubb lenne a dolog. -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1