ACL-Regex
view release on metacpan or search on metacpan
--- #YAML:1.0
name: ACL-Regex
version: 0.0002
abstract: Class to generate access controls using PCRE
author:
- Peter Blair (pblair@cpan.org)
license: unknown
distribution_type: module
configure_requires:
ExtUtils::MakeMaker: 0
build_requires:
ExtUtils::MakeMaker: 0
requires: {}
no_index:
directory:
- t
- inc
generated_by: ExtUtils::MakeMaker version 6.57_05
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
This ACL system provides a light framework for supplying regex-style, sys-admin
friendly access control to any kind of application.
Any application can make use of the module, the example application is a perl
service that takes postfix style policy server declarations, converts them
into a native format, and checks them against a database of ACLs.
Note, that this intended for use strictly with Postfix systems, but rather
any system that requires an ACL: web-application, mail application, etc.
Installation:
$ perl Makefile.PL && make test install
lib/ACL/Regex.pm view on Meta::CPAN
require Exporter;
@EXPORT = qw( new parse_acl_from_file match );
$VERSION = '0.0002';
sub new {
my $type = shift;
bless {}, $type;
}
# This variable stores all of the required fields
# for the ACL. If a required field is not in a
# given ACL or action, then it is autogenerated
# with the defaults (enabled).
my @required = qw(
account
action
ip
group
dow
time
lib/ACL/Regex.pm view on Meta::CPAN
return ( 0, '', '' );
} ## end sub match ($$)
1;
# vim: set ai ts=4 nu:
__END__
=head1 NAME
ACL::Regex - Process arbitrary events with regular expressions.
=head1 SYNOPSIS
use ACL::Regex;
# Instantiate a reject object
my $reject_acl = ACL::Regex->new->
generate_required( 'required.txt' )->
parse_acl_from_file( { Filename => "acl.reject.txt" } );
lib/ACL/Regex.pm view on Meta::CPAN
if( $rc ){
print "\t! Rejected against $regex\n";
print "\t: Reason: $comment\n";
next;
}
}
=head1 DESCRIPTION
ACL::Regex allows you to parse a series of actions, key/value pairs through
an object containing a series of regular expressions.
=head2 OBJECT ORIENTED INTERFACE
The module is written with an object oriented interface. There is no function
interface to choose from. To streamline many of the initial operations of the
object, many of the initialization methods return the object reference, allowing
the programmer to chain the commands together.
=over 4
lib/ACL/Regex.pm view on Meta::CPAN
# Reject mail from brazil
/account=[.*@example.net] ip=[200..*] group=[user] action=[send-mail]/ No mail to be sent from Brazil!
The two tab deliminated columns separate the regex acl and the comment returned if any
match is found.
=head3 REQUIRED FILE
The required file is supplied to the object during instantiation and will seed
the object with a list of I<required> keys in the hash. This way, if a key regex
isn't present in the B<ACL REGEX FILE> then the object will fill the hash with
a regex that I<matches all> possibilities. This is designed to satisfy the regex
string should a key be absent from the action line.
# This file contains a list of actions, and required attributes
send-mail=account,ip,group,dow,time
rwi_login=account,ip,auth_method,dow,time
create_user=account,ip
=head3 ACTION FILE
lib/ACL/Regex.pm view on Meta::CPAN
massaged so that any action key that doesn't satisfy the B<REQUIRED> fields are
added and the entire string is sorted by key name.
=head1 AUTHOR
Peter Blair C<pblair@cpan.org>
=head1 COPYRIGHT
This program is distributed in the hope that it will be
useful, but it is provided âas isâ and without any express
or implied warranties.
=head1 BUGS
Please report any bugs via L<https://github.com/petermblair/Perl-CPAN/issues>.
( run in 0.915 second using v1.01-cache-2.11-cpan-49f99fa48dc )