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