Re: [squid-users] custom auth not working

From: Chris Robertson <crobertson_at_gci.net>
Date: Thu, 11 Jun 2009 12:46:13 -0800

Al - Image Hosting Services wrote:
> Hi,
>
> I was not able to get the mysql authentication program to compile,
> after a day of playing with it, it would still just give me an ld
> error. I found a couple of examples of authentication software written
> in perl, so I thought "why not custom write it". My oldest son does
> some programming so he helped me with it, although both of us are at a
> loss as to why it doesn't work. It always returns the right response
> from the command line, either an OK or ERR. Maybe the response squid
> expects has changed. We have it logging what is sent to the perl
> script from squid, so I know that it is getting input from squid, but
> it doesn't look like it gives a response back to squid or at least one
> that squid can understand, because after putting in a username and
> password, the browser does nothing. Also, ncsa_auth works with my
> current config, and I am just changing that line in squid.conf to call
> custom_auth.pl.
>
> Here is what we have:
>
> #!/usr/bin/perl
> use DBI;
>
> # config
> my $host = "localhost";
> my $database = "filter";
> my $tablename = "filteredusers";
> my $user = "msyqlfilteruser";
> my $pw = "faithhope";
>
> # dbi connect
> my $dbh = DBI->connect("DBI:mysql:database=$database;host=$host",
> $user, $pw, {'RaiseError' => 1});

# Flush STDOUT
$|=1;

>
> while (<STDIN>) {
> chop $_;
>
> open $file, '>>/var/log/custom_auth.log';
> print $file "$_\n";
> close $file;
>
> # get email and password
> my @info = split(/ /, $_);
> my $email = $dbh->quote(shift(@info));
> my $pass = $dbh->quote(shift(@info));
>
> # query for user status
> my $sth = $dbh->prepare("SELECT stat FROM $tablename WHERE
> email=$email AND passwd=$pass LIMIT 1");
> $sth->execute();
>
> # check
> if (my $ref = $sth->fetchrow_hashref()) {
> if ($ref->{'stat'} =~ m/[AF]/) {
> #$dbh->do("UPDATE $tablename SET
> login_date='2010-06-15 00:00:00' WHERE id='2' LIMIT 1";
> print "OK\n";
> } else {
> print "ERR\n";
> }
> } else {
> print "ERR\n";
> }
>
> $sth->finish();
> }
>
> $dbh->disconnect();
>
>
>
> Of course, I changed the username and password that we are using for
> the database. Also, the line that is supposed to update the database
> is not working yet, but as you can see it is commented out. I was
> supposed to have this working Monday and it is now Thursday, so any
> help would be greatly appreciated.
>
> Best Regards,
> Al

Chris
Received on Thu Jun 11 2009 - 20:46:29 MDT

This archive was generated by hypermail 2.2.0 : Fri Jun 12 2009 - 12:00:03 MDT