environments/ppa-mbqj77/deployments/1
Xavier Guimard 8 years ago
parent 1b806590a5
commit 3db4967853
  1. 2
      lemonldap-ng-portal/MANIFEST
  2. 62
      lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Radius.pm
  3. 96
      lemonldap-ng-portal/lib/Lemonldap/NG/Portal/AuthRadius.pm
  4. 6
      lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Constants.pm

@ -24,6 +24,7 @@ lib/Lemonldap/NG/Portal/Auth/Null.pm
lib/Lemonldap/NG/Portal/Auth/OpenID.pm
lib/Lemonldap/NG/Portal/Auth/OpenIDConnect.pm
lib/Lemonldap/NG/Portal/Auth/Proxy.pm
lib/Lemonldap/NG/Portal/Auth/Radius.pm
lib/Lemonldap/NG/Portal/Auth/Remote.pm
lib/Lemonldap/NG/Portal/Auth/SAML.pm
lib/Lemonldap/NG/Portal/Auth/Slave.pm
@ -32,7 +33,6 @@ lib/Lemonldap/NG/Portal/Auth/Twitter.pm
lib/Lemonldap/NG/Portal/Auth/WebID.pm
lib/Lemonldap/NG/Portal/Auth/Yubikey.pm
lib/Lemonldap/NG/Portal/AuthMulti.pm
lib/Lemonldap/NG/Portal/AuthRadius.pm
lib/Lemonldap/NG/Portal/CDC.pm
lib/Lemonldap/NG/Portal/Display.pm
lib/Lemonldap/NG/Portal/Issuer/CAS.pm

@ -0,0 +1,62 @@
package Lemonldap::NG::Portal::Auth::Radius;
use strict;
use Mouse;
use Authen::Radius;
use Lemonldap::NG::Portal::Main::Constants qw(
PE_BADCREDENTIALS
PE_OK
PE_RADIUSCONNECTFAILED
);
extends qw(Lemonldap::NG::Portal::Auth::_WebForm);
our $VERSION = '2.0.0';
# PROPERTIES
has radius => ( is => 'rw' );
has authnLevel => ( is => 'rw', default => sub {
$_[0]->conf->{radiusAuthnLevel};
});
sub initRadius {
$_[0]->radius(
Authen::Radius->new(
Host => $_[0]->conf->{radiusServer},
Secret => $_[0]->conf->{radiusSecret}
)
);
}
# INITIALIZATION
sub init {
my $self = shift;
unless ( $self->initRadius ) {
$self->error('Radius connect failed');
}
return 1;
}
# RUNNING METHODS
sub authenticate {
my ( $self, $req ) = @_;
$self->initRadius unless($self->radius);
return PE_RADIUSCONNECTFAILED unless($self->radius);
my $res = $self->radius->check_pwd($req->user, $req->datas->{password});
unless($res==1){
$self->p->userNotice("Unable to authenticate $req->{user} !");
return PE_BADCREDENTIALS;
}
return PE_OK;
}
sub authLogout {
PE_OK;
}
1;

@ -1,96 +0,0 @@
##@file
# Radius authentication backend file
##@class
# Radius authentication backend class
package Lemonldap::NG::Portal::AuthRadius;
# Author: Sebastien Bahloul
use Lemonldap::NG::Portal::Simple;
use Lemonldap::NG::Portal::_WebForm;
our $VERSION = '2.0.0';
use base qw(Lemonldap::NG::Portal::_WebForm);
## @apmethod int authInit()
# Set _authnLevel
# @return Lemonldap::NG::Portal constant
sub authInit {
my $self = shift;
# require Perl module
eval { require Authen::Radius; };
if ($@) {
$self->lmLog( "Module Authen::Radius not found in @INC", 'error' );
return PE_ERROR;
}
$self->lmLog( "Opening connexion to " . $self->{radiusServer} . " ...",
'debug' );
$self->{radius} = new Authen::Radius(
Host => $self->{radiusServer},
Secret => $self->{radiusSecret}
);
unless ( $self->{radius} ) {
return PE_RADIUSCONNECTFAILED;
}
$self->{_authnLevel} = $self->{radiusAuthnLevel};
PE_OK;
}
## @apmethod int authenticate()
# Authenticate user by LDAP mechanism.
# @return Lemonldap::NG::Portal constant
sub authenticate {
my $self = shift;
unless ( $self->{radius} ) {
return PE_RADIUSCONNECTFAILED;
}
my $res = $self->{radius}->check_pwd( $self->{user}, $self->{password} );
unless ( $res == 1 ) {
$self->_sub( 'userNotice',
"Unable to authenticate " . $self->{user} . " !" );
return PE_BADCREDENTIALS;
}
return PE_OK;
}
## @apmethod int authFinish()
# Unbind.
# @return Lemonldap::NG::Portal constant
sub authFinish {
my $self = shift;
$self->{radius} = 0;
PE_OK;
}
## @apmethod int authLogout()
# Does nothing
# @return Lemonldap::NG::Portal constant
sub authLogout {
PE_OK;
}
## @apmethod boolean authForce()
# Does nothing
# @return result
sub authForce {
return 0;
}
## @method string getDisplayType
# @return display type
sub getDisplayType {
return "standardform";
}
1;

@ -107,9 +107,9 @@ our @EXPORT_OK = qw( PE_SENDRESPONSE PE_INFO PE_REDIRECT PE_DONE PE_OK
PE_MISSINGREQATTR PE_BADPARTNER PE_MAILCONFIRMATION_ALREADY_SENT
PE_PASSWORDFORMEMPTY PE_CAS_SERVICE_NOT_ALLOWED PE_MAILFIRSTACCESS
PE_MAILNOTFOUND PE_PASSWORDFIRSTACCESS PE_MAILCONFIRMOK
PE_MUST_SUPPLY_OLD_PASSWORD PE_FORBIDDENIP PE_CAPTCHAERROR PE_CAPTCHAEMPTY
PE_REGISTERFIRSTACCESS PE_REGISTERFORMEMPTY PE_REGISTERALREADYEXISTS
PE_NOTOKEN PE_TOKENEXPIRED HANDLER
PE_RADIUSCONNECTFAILED PE_MUST_SUPPLY_OLD_PASSWORD PE_FORBIDDENIP
PE_CAPTCHAERROR PE_CAPTCHAEMPTY PE_REGISTERFIRSTACCESS PE_REGISTERFORMEMPTY
PE_REGISTERALREADYEXISTS PE_NOTOKEN PE_TOKENEXPIRED HANDLER
);
our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK, 'import' ], );

Loading…
Cancel
Save