The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#! /usr/bin/perl
#
# Sample rule configuration for Net::Radius::Server
#
# Copyright © 2006, Luis E. Muñoz
#
# This file defines a single rule that uses PAM to authenticate
# remote users
#
# $Id: pam-rule.pl 74 2007-04-21 17:13:14Z lem $
#

use strict;
use warnings;

use Net::Radius::Server::Base qw/:all/;

use Net::Radius::Server::PAM;
use Net::Radius::Server::Rule;
use Net::Radius::Server::Match::Simple;

my $match_acc_req = Net::Radius::Server::Match::Simple->mk
    ({ code => 'Access-Request', description => 'Is Access-Req?' });

my @rules = ();

push @rules, Net::Radius::Server::Rule->new
    ({
	match_methods =>
	    [ 
	      $match_acc_req,
	      Net::Radius::Server::PAM->fmatch
	      ({
		  description => 'pam-auth?',
		  service => 'login',
	      }),
	      ],
	set_methods =>
	    [ Net::Radius::Server::PAM->fset
	      ({
		  description => 'pam-auth',
		  code => 'Access-Accept',
		  auto => 1,
		  attr => [['Reply-Message' => 'Authenticated with PAM']]
		  result => NRS_SET_RESPOND | NRS_SET_CONTINUE,
	      }),
	     ],
    });

\@rules;