Revision 6b352f38
Von Moritz Bunkus vor fast 14 Jahren hinzugefügt
SL/Auth/PasswordPolicy.pm | ||
---|---|---|
4 | 4 |
|
5 | 5 |
use parent qw(Rose::Object); |
6 | 6 |
|
7 |
use constant OK => 0; |
|
8 |
use constant TOO_SHORT => 1; |
|
9 |
use constant TOO_LONG => 2; |
|
10 |
use constant MISSING_LOWERCASE => 4; |
|
11 |
use constant MISSING_UPPERCASE => 8; |
|
12 |
use constant MISSING_DIGIT => 16; |
|
13 |
use constant MISSING_SPECIAL_CHAR => 32; |
|
14 |
use constant INVALID_CHAR => 64; |
|
7 |
use constant OK => 0; |
|
8 |
use constant TOO_SHORT => 1; |
|
9 |
use constant TOO_LONG => 2; |
|
10 |
use constant MISSING_LOWERCASE => 4; |
|
11 |
use constant MISSING_UPPERCASE => 8; |
|
12 |
use constant MISSING_DIGIT => 16; |
|
13 |
use constant MISSING_SPECIAL_CHAR => 32; |
|
14 |
use constant INVALID_CHAR => 64; |
|
15 |
use constant WEAK => 128; |
|
15 | 16 |
|
16 | 17 |
use Rose::Object::MakeMethods::Generic |
17 | 18 |
( |
... | ... | |
34 | 35 |
$result |= MISSING_SPECIAL_CHAR() if $cfg->{require_special_character} && $password !~ $cfg->{special_characters_re}; |
35 | 36 |
$result |= INVALID_CHAR() if $cfg->{invalid_characters_re} && $password =~ $cfg->{invalid_characters_re}; |
36 | 37 |
|
38 |
if ($cfg->{use_cracklib}) { |
|
39 |
require Crypt::Cracklib; |
|
40 |
$result |= WEAK() if !Crypt::Cracklib::check($password); |
|
41 |
} |
|
42 |
|
|
37 | 43 |
return $result; |
38 | 44 |
} |
39 | 45 |
|
... | ... | |
47 | 53 |
push @errors, $::locale->text('A lower-case character is required.') if $result & MISSING_LOWERCASE(); |
48 | 54 |
push @errors, $::locale->text('An upper-case character is required.') if $result & MISSING_UPPERCASE(); |
49 | 55 |
push @errors, $::locale->text('A digit is required.') if $result & MISSING_DIGIT(); |
56 |
push @errors, $::locale->text('The password is weak (e.g. it can be found in a dictionary).') if $result & WEAK(); |
|
50 | 57 |
|
51 | 58 |
if ($result & MISSING_SPECIAL_CHAR()) { |
52 | 59 |
my $char_list = join ' ', sort split(m//, $self->config->{special_characters}); |
Auch abrufbar als: Unified diff
Optionaler Passwortcheck mit cracklib
Conflicts: