Малэнкый проблэм с BM3.8 SSL Login

Обсуждение технических вопросов по продуктам Novell

Малэнкый проблэм с BM3.8 SSL Login

Сообщение Alex-M » 25 мар 2005, 15:52

NW6.5sp2 + TCP657jb + BM3.8sp2 + BM38fp3d + proxy.nlm из b3bm38sp3. Вот такой компот пока...
Есть проблема - на Win2000 и WinXP не работает SSL Login (на Win9x - ОК) при использовании в броузере режима скрипта автоконфигурации. При прямом задании параметров прокси в броузере - всё ОК. Скрипт proxy.pac берётся с другого Веб-сервера (в броузере нечто типа: http://pxyconfig.dom.ru/proxy.pac) и содержит следующее:
Код: Выделить всё
/*
Content-type: application/x-ns-proxy-autoconfig
*/

function FindProxyForURL(url, host)
{
   if ((dnsDomainIs(host, ".dom.ru")) &&
         (isInNet(host, "A.B.C.128", "255.255.255.128") ||
          isInNet(host, "D.E.0.0", "255.255.0.0") ||
          isInNet(host, "F.G.0.0", "255.255.0.0"))) {
         return "DIRECT";
   }
   else {
      return "PROXY proxy.dom.ru:8080";
   }
}

Всё это работало до установки нового TCP/IP и PROXY.NLM.
Сейчас же происходит следующее: клиент идёт на сайт, происходит редирект на SSL Login Page, грузится апплет - и, вместо нормального сообщения "Приложение инициализировано" и последующего появления окна логина, появляется сообщение "Готово" и всё!
Методом научного тыка было выяснено, что это лечится не только прямым прописыванием прокси в броузере, но и (как ни странно) переводом JVM на станции из режима "Use browser proxy settings" в режим "Direct". Но это некорректное решение, ибо в таком случае перестаёт работать все внешние сайты на Java (что в общем-то логично).
Ещё раз повторяю - это происходит только на станциях под W2k/WXP.
В чём проблема? Опять индусы не ту траву замешали?
Вагончик тронется, НОВЕЛЛ - останется!!!
Alex-M
 
Сообщения: 298
Зарегистрирован: 21 авг 2002, 16:46
Откуда: Москва, МИД России

Сообщение Alex-M » 28 мар 2005, 14:50

Никто не знает? ;-)
Вагончик тронется, НОВЕЛЛ - останется!!!
Alex-M
 
Сообщения: 298
Зарегистрирован: 21 авг 2002, 16:46
Откуда: Москва, МИД России

Сообщение Alex-M » 29 мар 2005, 15:04

Ну, раз никто не знает - отвечу сам... :D После долгих експрементов следствие установило, что глюк происходит, по всей видимости, из-за того, что функции IsInNet() и dnsDomainIs() не совсем корректно работают при множественном использовании в одной логической конструкции. Либо происходит зацикливание, либо DNS timeout, либо (что более всего бросается в глаза) некорректная работа самих функций именно на JVM под 2000/XP. Если посмотреть Java-консоль, то там видно, что, несмотря на необходимость соединения с проксёй в "директе" (т.к. она находится во внутренней сети), апплет пытается грузить классы используя соединение типа "прокси".
Логически проанализировав всё это, решил, что мне нафик не сдались конкретный домен (как результат dnsDomainIs() ) и подсеть (как результат IsInNet() ) - ведь все операции броузер производит с УРЛами, которые есть простые текстовые строки. В результате была использована функция shExpMatch() и всё свелось к виду:
Код: Выделить всё
/*
Content-type: application/x-ns-proxy-autoconfig
*/

function FindProxyForURL(url, host)
{
   if (shExpMatch(url, "*.dom.ru*") ||
      shExpMatch(url, "*A.B.C.*") ||
      shExpMatch(url, "*D.E.*") ||
      shExpMatch(url, "*F.G.*") ||
      shExpMatch(url, "*127.0.0.*") ||
      shExpMatch(url, "*localhost*")) {
      return "DIRECT";
   }
   else {
      return "PROXY k.l.m.n:8080";
   }
}

После чего всё заработало легко и непринуждённо... И даже существенно быстрее, ибо в новой конструкции ДНС-запросы не используются вообще - а в старой их было ажно 4 штуки... :-)
Вагончик тронется, НОВЕЛЛ - останется!!!
Alex-M
 
Сообщения: 298
Зарегистрирован: 21 авг 2002, 16:46
Откуда: Москва, МИД России

Сообщение Lab » 29 мар 2005, 16:11

Alex-M
очередной спасиб за работающий config

только что проверили... :)
Lab
 
Сообщения: 196
Зарегистрирован: 08 дек 2003, 13:57
Откуда: Москва


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

cron