On Sun, Sep 14, 2003 at 08:18:53PM +0200, Daniel VASARHELYI wrote:
class VirtualHttp(HttpProxy): def config(self): HttpProxy.config(self) self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL) self.request["POST"] = (HTTP_REQ_POLICY, self.filterURL)
def filterURL(self, method, url, version): log("http.info", 3, "GET: \"%s\" \"%s\"" % (self.session.session_id, url)) if re.search("http://[^/]+/private.*", url): self.error_info = "This page (/private/) is not accessible in non-secure mode." log("http.info", 3, "GET: private") return HTTP_REQ_REJECT; return HTTP_REQ_ACCEPT;
class VirtualHttpS(PsslProxy): def config(self): PsslProxy.config(self) self.stack_proxy = VirtualHttp
Az a bajom, hogy ennek felig-meddig ganyolas szaga van, trukkos esetben elofordulhat, hogy http keresnel is https van a "url" valtozoban. Van erre ennel jobb megoldas? Pl valami valtozo beallitasa lehetne, de a VirtualHttpS.stack_proxy-ja egy memoriaban valo hivatkozas (ugysejtem), hogyan lehetne abban az objektumban egy valtozot (client_using_ssl, pl) beallitani, ha a VirtualHttp felett a VirtualHttpS van es nem a Listener...
probald esetleg a self.request_url_file-t hasznalni, ebben nem a teljes url van benne, hanem csak a file resz. (a proxy feldarabolja az URL-t es publikalja a request_url_* attributumokban, ezek le vannak irva a Http proxy docstring-jeben) -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1