Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Konstantin Voznjuk                   2:5020/400     09 Mar 2004  20:50:21
 To : All
 Subject : Вопрос по auth in squid
 -------------------------------------------------------------------------------- 
 
 
 Хелп плиз а то мозги вскипят....
 Пытаюсь сделать идентификацию пользователей в сквиде через mysql.
 Hаваял перловый скриптец...
 
 #!/usr/bin/perl
 #
 #
 use DBI;
 use CGI qw(:standard);
 
 $db_name = "ххххх";
 $db_host = "ххх.ххх.ххх.ххх";
 $db_user = "хххх";
 $db_user_passwd = "хххх";
 
 authentication();
 
 sub authentication {
   while (<STDIN>) {
 $dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host", $db_user,
 $db_user_passwd, {'RaiseError' => 1});
 $chk = $dbh->prepare("SELECT UserID FROM z_Users WHERE Login= ? AND Passwd=
 ? AND ActivFlag='1'");
 $del = "update z_Users set ActivFlag=\'0\' where CountD > LimitD or CountW >
 LimitW or CountM > LimitM";
     chomp;
     my @login = split(/ /);
     $login[0] = &checkcaseinsensitiv($login[0]);
     $login[1] = &checkcaseinsensitiv($login[1]);
     $dbh->do( $del );
     $chk->execute( $login[0], $login[1]);
     $rez = $chk->fetchall_arrayref;
     $count_actusers = scalar @{ $rez };
     open ( DEBUG, '>>/tmp/squidauth.log' ) or die "Can't open file: $!";
     print DEBUG " $login[0] , $login[1] , $count_actusers \n";
     close (DEBUG);
     print $count_actusers > 0 ? "OK\n" : "ERR\n";
 
 $dbh->disconnect();
 
   }
 }
 
 sub checkcaseinsensitiv() {
   if ($caseinsensitiv eq "true") {
     if ($_[0] ne lc($_[0])) {
       $filechanged = 1;
       $_[0] = lc($_[0]);
     }
   }
   return $_[0];
 }
 В конфиге сквида соответственно...
 auth_param basic program /usr/local/sbin/kot_squidauth.pl
 auth_param basic children 5
 auth_param basic realm Squid proxy-caching web server
 auth_param basic credentialsttl 2 hours
 
 Так вот.... Если запускать скрипт в ручную (из шела) все работает... А вот
 если на клиенте запускаеться броузер то:
 1. Появляется желаемый запрос логина и пароля
 2. После ввода заведомо корректной комбинации окно броузера просто входит в
 штопор (шарик крутится, белый фон, никакой активности даже сообщений об
 ошибке)
 3. В логах mysql запись о нормальной отработке запросов есть (всех)
 4. В дебагфайле ничего не появляеться (в ручном режиме все в порядке)...
 5. В логах сквида только сообщение о запросе пароля у клиента...
 
 Если изменить строку
     print $count_actusers > 0 ? "OK\n" : "ERR\n";
 на     print "OK\n"; то естественно все работает нормально....
 Соответственно вопрос...
 В чем грабли?
 Отзовитесь плиз кто решал подобную задачю?
 Как заставить сквид написать хоть что нибуть по поводу того что происходит?
 --- ifmail v.2.15dev5.3
  * Origin: Adamant ISP news server (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Вопрос по auth in squid   Konstantin Voznjuk   09 Mar 2004 20:50:21 
Архивное /ru.linux/12034b1ce8bc9.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional