[zorp-hu] cookie alapjan valo dontes

Pásztor Lénárd Zoltán lenard.pasztor at wonderline.hu
2006. Ápr. 5., Sze, 16:02:32 CEST


Kiraly, igy mar teszi a dolgat, koszonom! :)

Hol talalok leirast arrol milyen fuggvenyei vannak a zorpnak es
ezeket hogyan lehet hasznalni?

Az url matching igy mar megy korrektul.
A masodik koros dontes a cookie-n alapul.
Irtatok, hogy igy kell hasznalnom.

	def processCookie(self, hdr_name, hdr_value):
		# hdr_value-ban van a Cookie fejlec erteke, abbol kell kiszedni a 
		# teged erdeklo erteket

		# az 1.2.3.4 erteke lehet valtozo is, amit a Cookie erteke alapjan
		# raktal ossze.
		self.session.setServer(SockAddrInet('1.2.3.4', 80))
		return HTTP_HDR_ACCEPT


Ezzel az a kerdesem, hogy rakhatom ezt igy egy else agba (ha nem
matchelt az url), vagy kulon 'def ...'-t hozzak letre es szurjam be 
megegyszer
a self.request["GET"] = (HTTP_REQ_POLICY, self.url_match)
mezot a masodik def nevevel?

Probaltam mindkettot, de egyik sem ment.
A jelenlegi kod:

class HTTPSHelper(HttpProxy):

        def config(self):
                HttpProxy.config(self)
                self.default_port = 443
                self.request["GET"] = (HTTP_REQ_POLICY, 
self.url_or_cookie_match)
               

        def url_or_cookie_match(self, method, url, version):
                sw_match=re.compile("site=+(ch-de|ch-fr|ch-it)")
                matched_url=sw_match.findall(url)
                if (matched_url):
                        
self.session.setServer(SockAddrInet('10.10.12.6', 443))
                        log("http.info", 3, "DEBUG: url_matched %s: GET: 
%s" % (self.session.session_id, url))
                        return HTTP_REQ_ACCEPT
                else:
                        
cookie_match=re.compile("SplashCookie=+(ch-de|ch-fr|ch-it)")
                        matched_cookie=re.compile(hdr_value);
                        if (matched_cookie):
                                
self.session.setServer(SockAddrInet('10.10.12.6', 443))
                                log("http.info", 3, "DEBUG: 
cookie_matched %s: GET: %s" % (self.session.session_id, url))
                                return HTTP_REQ_ACCEPT
                        else:
                                
self.session.setServer(SockAddrInet('10.10.10.6', 443))
                                log("http.info", 3, "DEBUG: 
cookie_unmatched %s: GET: %s" % (self.session.session_id, url))
                                return HTTP_REQ_ACCEPT

Azt szeretnem elerni, hogy ha matched_url true akkor kiszolgalja onnan
ha nem akkor cookie-ra matcholjon es ez dontse el melyik szerverre megy.
Hol szurom el?


Szalay Attila wrote:
> On Wed, 2006-04-05 at 15:25 +0200, Pásztor Lénárd Zoltán wrote:
>   
>> Bocsanat, hogy megint zavarok, de mar celegyenesben :)
>> Szoval, ha kiveszem a router=InbandRouter(forge_addr=TRUE)
>> sort akkor megy, de ezesetben bukom a transzparens mukodest,
>> azaz a zorp ip-je latszik a belso webszerver access logjaban, azaz
>> a zorp a belso ip-jet hasznalva csatlakozik.
>>
>> ...Vagy hogyan maradhat meg a transzparens mukodes (tproxy)
>> inband router nelkul?
>>     
>
> Pl. TransparentRouter(forge_addr=TRUE)
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> zorp-hu mailing list
> zorp-hu at lists.balabit.hu
> https://lists.balabit.hu/mailman/listinfo/zorp-hu
>   


-- 
Pásztor Lénárd Zoltán
rendszergazda

Wonderline Hungary Kft.
Telefon: (+36-1) 272.0242
Fax: (+36-1) 272.0252
E-mail: lenard.pasztor at wonderline.hu
Honlap: www.wonderline.hu



További információk a(z) zorp-hu levelezőlistáról