NAME

Data::Passphrase::Ruleset - ruleset for validating passphrases

SYNOPSIS

Specified by script file:

my $ruleset = Data::Passphrase::Ruleset->new({
    debug => 1,
    file  => '/usr/local/etc/passphrase/rules',
});

my $passphrase_object = Data::Passphrase->new({
    ruleset => $ruleset,       # putting the filename here also works
});

Passing rules in as Data::Passphrase::Rule objects or directly:

my $rule = Data::Passphrase::Rule->new({
   code     => 450,
   message  => 'is too short',
   test     => 'X' x 15,
   validate => sub { $_[0] >= 15 },
});

my $ruleset = Data::Passphrase::Ruleset->new({
    rules  => [
       $rule,
       {
           code     => 452,
           message  => 'may not contain # or @',
           test     => [
               'this passphrase contains #',
               '@ appears in this one',
           ],
           validate => sub { $_[0] !~ /([#@])/ },
       },
    ]
});

my $passphrase_object = Data::Passphrase->new({
    ruleset => $ruleset,
});

DESCRIPTION

Objects of this class represent a list of strength-checking rules used by Data::Passphrase. In addition to constructor and accessor methods, it provides a method to load rules from a Perl script.

INTERFACE

There is a constructor, new, which takes a reference to a hash of initial attribute settings, and accessor methods of the form get_attribute() and set_attribute(). See "Attributes".

Methods

In addition to the constructor and accessor methods, the following special method is available.

load()

$self->load()

Load or reload rules from the Perl script specified by the file attribute. Rules are only reloaded if the script has been modified since the last time it was evaluated. Either way, after a "load()" in load(), the rules attribute will point to an up-to-date copy of the rules.

Attributes

The attributes below can be accessed via methods of the form get_attribute() and set_attribute().

debug

If TRUE, enable debugging to the Apache error log.

file

The filename of a Perl script that, when evaluated, returns a list of rules. Each rule is specified as either an Data::Passphrase::Rule object or a hash reference used to construct one.

passing_score

The lowest score a rule's validate routine can return for the passphrase to pass that rule. Defaults to 0.6.

rules

A reference to an array of rules. Each rule is specified as either an Data::Passphrase::Rule object or a hash reference used to construct one.

EXAMPLES

See Data::Passphrase and the included passphrase_rules file.

AUTHOR

Andrew J. Korty <ajk@iu.edu>

SEE ALSO

Data::Passphrase(3), Data::Passphrase::Rule(3)