1#!@PERL@ 2 3use strict; 4use Pod::Usage; 5use Getopt::Long; 6 7=pod 8 9=head1 NAME 10 11 basic_pop3_auth - POP3 authenticator for Squid 12 13=head1 SYNOPSIS 14 15 basic_pop3_auth server 16 17=head1 DESCRIPTION 18 19B<basic_pop3_auth> authenticates user credentials against a POP3 server. 20 21=head1 OPTIONS 22 23The only option this helper takes is the name of the POP3 server to validate against. 24 25=head1 AUTHOR 26 27This program was written by I<Henrik Nordstrom <henrik@henriknordstrom.net>> 28 29This manual was written by I<Amos Jeffries <squid3@treenet.co.nz>> 30 31=head1 COPYRIGHT 32 33 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors 34 * 35 * Squid software is distributed under GPLv2+ license and includes 36 * contributions from numerous individuals and organizations. 37 * Please see the COPYING and CONTRIBUTORS files for details. 38 39 # Copyright (C) 2006 Henrik Nordstrom <henrik@henriknordstrom.net> 40 # 41 # This program is free software; you can redistribute it and/or modify 42 # it under the terms of the GNU General Public License as published by 43 # the Free Software Foundation; either version 2 of the License, or 44 # (at your option) any later version. 45 # 46 # This program is distributed in the hope that it will be useful, 47 # but WITHOUT ANY WARRANTY; without even the implied warranty of 48 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 49 # GNU General Public License for more details. 50 # 51 # You should have received a copy of the GNU General Public License 52 # along with this program; if not, write to the Free Software 53 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. 54 # 55 # Change log: 56 # 2006-12-10 henrik Initial revision 57 # 58 59=head1 QUESTIONS 60 61Questions on the usage of this program can be sent to the I<Squid Users mailing list <squid-users@lists.squid-cache.org>> 62 63=head1 REPORTING BUGS 64 65Bug reports need to be made in English. 66See http://wiki.squid-cache.org/SquidFaq/BugReporting for details of what you need to include with your bug report. 67 68Report bugs or bug fixes using http://bugs.squid-cache.org/ 69 70Report serious security bugs to I<Squid Bugs <squid-bugs@lists.squid-cache.org>> 71 72Report ideas for new improvements to the I<Squid Developers mailing list <squid-dev@lists.squid-cache.org>> 73 74=head1 SEE ALSO 75 76squid (8), GPL (7), 77 78The Squid FAQ wiki http://wiki.squid-cache.org/SquidFaq 79 80The Squid Configuration Manual http://www.squid-cache.org/Doc/config/ 81 82=cut 83 84use Net::POP3; 85$|=1; 86 87if ( @ARGV != 1 ) { 88 print STDERR "Usage: $0 popserver\n"; 89 exit 1 90} 91 92my $server = shift @ARGV; 93 94while(<>) { 95 my ($username, $password) = split(/\s+/); 96 $username =~ s/%([0-9a-f][0-9a-f])/pack("H2",$1)/gie; 97 $password =~ s/%([0-9a-f][0-9a-f])/pack("H2",$1)/gie; 98 99 my $pop = Net::POP3->new($server); 100 if (!$pop) { 101 print "ERR Server not responding\n"; 102 next; 103 } 104 105 # Here apop could be used instead for MD5 support 106 if ($pop->login($username, $password)) { 107 print "OK\n"; 108 } else { 109 print "ERR\n"; 110 } 111 $pop->quit; 112 undef $pop; 113} 114