Path: usenet.cise.ufl.edu!newsfeeds.nerdc.ufl.edu!newsfeeds.nerdc.ufl.edu!news.magicnet.net!gulfsouth.verio.net!demos!newsfeed.gamma.ru!Gamma.RU!newsfeed.direct.ca!newsfeed.corridex.com!ameritech.ais.net!jamie!ais.net!ameritech.net!uunet!uunet!in1.uu.net!news.neta.com!not-for-mail
From: Tim Potter <[email protected]>
Newsgroups: comp.lang.perl.announce,comp.lang.perl.modules
Subject: ANNOUNCE: Config::Access 0.01
Followup-To: comp.lang.perl.modules
Date: 23 Sep 1998 00:02:09 GMT
Organization: Cooperative Research System for Advanced Computational Systems
Lines: 77
Approved: [email protected] (comp.lang.perl.announce)
Message-ID: <[email protected]>
NNTP-Posting-Host: gadget.cscaper.com
X-Trace: news.neta.com 906508929 23797 206.67.186.3 (23 Sep 1998 00:02:09 GMT)
X-Complaints-To: [email protected]
NNTP-Posting-Date: 23 Sep 1998 00:02:09 GMT
X-Disclaimer: The "Approved" header verifies header information for article transmission and does not imply approval of content.
Xref: usenet.cise.ufl.edu comp.lang.perl.announce:134 comp.lang.perl.modules:4302

Announcing Config::Access, a perl module for simple text-file based
access control based on the TCP wrappers access control language.
Available soon from a CPAN near you.

Basically this module is a side-effect of a project I did at work.
Hopefully someone else will find it useful.


Tim.

NAME
      Config::Access - Perform simple access control

SYNOPSIS
          use strict;                  # not optional (-:
          use Config::Access;


DESCRIPTION
      The Config::Access module provides a method of
      authenticating arbitrary client/service pairs in a way
      very similar to that provided by the TCP wrappers by
      Wietse Venema <[email protected]>.

      This module can be useful for restricting access to
      certain parts of a script to a certain domain.  For
      example, a front end program to some device might deny
      certain users access to certain commands or only allow
      trusted users access to dangerous commands.

      The access control language is very similar to the access
      control language specified in hosts_access(5) for the TCP
      wrappers.  Two configuration files specify access rules.
      A file ending in .allow specifies rules to allow access
      and a file ending in .deny specifies rules to deny access.
      The prefix of these files is specified when a
      Config::Access object is created.

ACCESS CONTROL FILES
      As per the TCP wrappers, a request for authorisation
      consults the .allow and .deny files.  The search stops at
      the first match.

      o Access is granted if a $client/$service matches a rule
           in the .allow file.

      o Access is denied if a $client/$service matches a rule in
           the .deny file.

      o Otherwise, if no match is made access is granted.

ACCESS CONTROL RULES
      Access control rules appear in the configuration files in
      the following format.

          service_list : client_list

      Each item in a list is separated by a comma and optional
      whitespace.  Newlines and lines beginning with a '#'
      character are ignored.  A line may be continued if a
      backslash character is present as the end of the line.

      A service or client may be specified as the string 'ALL'
      which means it will be matched by anything.  An optional
      parameter to the access_query method described below
      allows the caller to determine whether the request was
      granted (or denied) using a rule containing the ALL
      wildcard.

      Config::Access also supports IP address matching of
      clients and services using the network/netmask number
      format.

      The EXCEPT operator present in the TCP wrappers access
      control language is not supported.