Squid s NTLM kontra Sun JVM a mojebanka.cz?

Michal Dobes dobes na tesnet.cz
Úterý Prosinec 13 19:38:12 CET 2005


Libor Chocholaty napsal(a):
>>mel jsem zato ze http/1.1 defaulne (neni - li nevyrceno) zapina keepalive

Je to takto, jestli-ze server i klient je verze 1.1, tak se predpoklada,
ze spojeni asi bude trvale, pokud si klient nerekne connect: close.

> Mam dojem, ze se to tyka atributu "Connection: keep-alive" nejsem si 
> jist, zda se to dle rfc vztahuje i na "Proxy-Connection:". Navic v 
> RFC2616 se o zadnem Proxy-Connection nehovori.

Proxy-connection jsem take nikde nenasel, ale snad to bude podobne
s connect.

Problem je v tom, ze squid (aspon verze 2.5) neni HTTP/1.1, vsechny
jim posilane hlasky maji HTTP/1.0, proto klienti nemuzou predpokladat,
ze spojeni bude trvale, pokud si to vyslovne nevyzadaji pres keep-alive.

A ve zdrojaku squidu je to tak i napsano, je tam kod, ktere zapina
automaticky keep-alive ve chvili, kdy je klient 1.1 a squid taktez
bude 1.1, coz zatim neni (WHEN_SQUID_IS_HTTP1_1). Dle pohledu do 3.0
kodu se na tom brzo nic nezmeni. :-)

Takze v tomto pripade bych ocekaval, ze si tam Sun to sve
Proxy-Connection: keep-alive vlozi (staci i Connection: keep-alive).
Pekne je, ze dle tvrzeni ma Sun JVM 1.5 fungovat se squidem:
http://www.squid-cache.org/bugs/show_bug.cgi?id=1447
- All the major browser supporting NTLM (Internet Explorer, Mozilla,
Firefox, Sun Java 1.5) are compliant with the current Microsoft
specification and work fine with Squid

Jinde najdu u Sunu ve foru tunu narku, ze NTLM s JVM1.5 nefunguje
ani proti ISA serveru. :-) :-(
http://forum.java.sun.com/thread.jspa?threadID=456009&start=15

U MS v KB je zase upozorneni, ze klient provadejici NTLM autorizaci
musi vkladat "Proxy-Connection: Keep-Alive".
http://support.microsoft.com/default.aspx?scid=kb;en-us;254396

Takze z toho vseho mi vychazi, ze by tam ten Sun JDK tu hlavicku
mel davat? :-))

	M.


PS: Jen tak jsem zkusil na squid-2.5.STABLE12:
--- HttpMsg.c.orig      Mon Jan 19 18:46:40 2004
+++ HttpMsg.c   Tue Dec 13 18:42:23 2005
@@ -113,6 +113,8 @@
                 return 0;
             if (!strncasecmp(agent, "Netscape/3.", 11))
                 return 0;
+           if (strstr(agent, "Java/1.5.0_"))
+               return 1;
         }
         /* for old versions of HTTP: persistent if has "keep-alive" */
         return httpHeaderHasConnDir(hdr, "keep-alive");

a hle, vse jede jak ma.
Jen si nejsem jist, ze to je uplne spravne reseni. :-)


Další informace o konferenci Linux