Here's a perl script I use to authenticate against a mysql database.

Gavin


#!/usr/local/bin/perl -w
use DBI;

##
## Auth module for squid/perl5/mysql
##
## Gavin Cameron, ITworks Consulting, 1999
##
## Not elegant, but functional, authentication module that checks an MySQL
## database for authentication info for the Squid WWW proxy/cache
##

##
## Database scheme
##
## create table user (
##   username varchar(30) not null,
##   password varchar(30) not null,
##   index idx1 (username, password)
## );
##

##
## Database info
##
$dbname = 'testauth';
$dbhost = 'ferret';
$dbport = '3306';
$dbuser = 'user';
$dbpasswd = 'pass';
$dbtype = 'mysql';

$dbstring = $dbname;
$dbstring .= ':' . $dbhost if defined $dbhost;
$dbstring .= ':' . $dbport if defined $dbport;

$dbh = DBI->connect($dbstring, $dbuser, $dbpasswd, $dbtype);

if ( !defined $dbh )
{
  print "Cannot connect to database: $DBI::errstr\n";
  exit;
}

$|=1;

while (<>)
{
  chomp;
  ($user, $pass) = ( /^(\S*)\s(.*)$/ );

  if ( ( ! defined $user ) || ( ! defined $pass ) )
  {
    print "ERR\n";
    next;
  }

  undef @rowarray;

  @rowarray = $dbh->selectrow_array("select username from user where username = 
\'$user\' and password = \'$pass\'");

  if ( ! defined @rowarray )
  {
    print "ERR\n";
  }
  else
  {
    print "OK\n";
  }
}

[]-----------------------------------+------------------------------------[]
| Gavin Cameron                      |          ITworks Consulting         |
| Ph    : 0418 390350                |     Suite 100, 85 Grattan Street    |
| Fax   : +61 3 9347 6544            |          Carlton,  Victoria         |
| Email : [EMAIL PROTECTED]       |           Australia,  3053          |
[]-----------------------------------+------------------------------------[]

On Fri, 22 Jan 1999, Jeff Beley wrote:

> I have been unsucessfully trying to write a external authenticator
> in perl to use a mysql database for authenication.  When I run it
> from a command line, it seems to work.  I used the ncsa_auth as
> a model. However when squid trys to run it either dies or constantly
> say Authentication Failed.  Does anyone have any guidelines for writting
> such a tool.
> 
> 
> TIA
> --Jeff
> 
> -- 
> 
> 
> -------------------------------
> Jeff Beley <[EMAIL PROTECTED]>
> Network Administrator
> PGP Key Availible upon request
> 

Reply via email to