File: //lib64/squid/basic_pop3_auth
#!/usr/bin/perl
use strict;
use Pod::Usage;
use Getopt::Long;
=pod
=head1 NAME
basic_pop3_auth - POP3 authenticator for Squid
=head1 SYNOPSIS
basic_pop3_auth server
=head1 DESCRIPTION
B<basic_pop3_auth> authenticates user credentials against a POP3 server.
=head1 OPTIONS
The only option this helper takes is the name of the POP3 server to validate against.
=head1 AUTHOR
This program was written by I<Henrik Nordstrom <henrik@henriknordstrom.net>>
This manual was written by I<Amos Jeffries <squid3@treenet.co.nz>>
=head1 COPYRIGHT
* Copyright (C) 1996-2016 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
* Please see the COPYING and CONTRIBUTORS files for details.
# Copyright (C) 2006 Henrik Nordstrom <henrik@henriknordstrom.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
#
# Change log:
# 2006-12-10 henrik Initial revision
#
=head1 QUESTIONS
Questions on the usage of this program can be sent to the I<Squid Users mailing list <squid-users@squid-cache.org>>
=head1 REPORTING BUGS
Bug reports need to be made in English.
See http://wiki.squid-cache.org/SquidFaq/BugReporting for details of what you need to include with your bug report.
Report bugs or bug fixes using http://bugs.squid-cache.org/
Report serious security bugs to I<Squid Bugs <squid-bugs@squid-cache.org>>
Report ideas for new improvements to the I<Squid Developers mailing list <squid-dev@squid-cache.org>>
=head1 SEE ALSO
squid (8), GPL (7),
The Squid FAQ wiki http://wiki.squid-cache.org/SquidFaq
The Squid Configuration Manual http://www.squid-cache.org/Doc/config/
=cut
use Net::POP3;
$|=1;
if ( @ARGV != 1 ) {
print STDERR "Usage: $0 popserver\n";
exit 1
}
$server = shift @ARGV;
while(<>) {
my ($username, $password) = split(/\s+/);
$username =~ s/%([0-9a-f][0-9a-f])/pack("H2",$1)/gie;
$password =~ s/%([0-9a-f][0-9a-f])/pack("H2",$1)/gie;
$pop = Net::POP3->new($server);
if (!$pop) {
print "ERR Server not responding\n";
next;
}
# Here apop could be used instead for MD5 support
if ($pop->login($username, $password)) {
print "OK\n";
} else {
print "ERR\n";
}
$pop->quit;
undef $pop;
}