File Coverage

blib/lib/Authen/Simple/Kerberos.pm
Criterion Covered Total %
statement 10 12 83.3
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 14 16 87.5


line stmt bran cond sub pod time code
1             package Authen::Simple::Kerberos;
2              
3 1     1   918 use strict;
  1         2  
  1         43  
4 1     1   5 use warnings;
  1         2  
  1         38  
5 1     1   16 use base 'Authen::Simple::Adapter';
  1         2  
  1         968  
6              
7 1     1   46586 use Authen::Krb5::Simple;
  0            
  0            
8             use Params::Validate qw[];
9              
10             our $VERSION = 0.1;
11              
12             __PACKAGE__->options({
13             realm => {
14             type => Params::Validate::SCALAR,
15             optional => 1
16             }
17             });
18              
19             sub check {
20             my ( $self, $username, $password ) = @_;
21              
22             my @arguments = $self->realm ? ( realm => $self->realm ) : ();
23             my $kerberos = Authen::Krb5::Simple->new(@arguments);
24             my $realm = $kerberos->realm;
25              
26             unless ( $kerberos->authenticate( $username, $password ) ) {
27              
28             my $error = $kerberos->errstr;
29              
30             $self->log->debug( qq/Failed to authenticate user '$username' using realm '$realm'. Reason: '$error'/ )
31             if $self->log;
32              
33             return 0;
34             }
35              
36             $self->log->debug( qq/Successfully authenticated user '$username' using realm '$realm'./ )
37             if $self->log;
38              
39             return 1;
40             }
41              
42             1;
43              
44             __END__