lemonldap-ng/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/Slave.pm

51 lines
1.3 KiB
Perl
Raw Normal View History

2016-05-25 21:30:43 +02:00
##@file
# Slave common functions
##@class
# Slave common functions
package Lemonldap::NG::Portal::Lib::Slave;
use strict;
2020-11-16 21:49:41 +01:00
use Mouse;
2016-05-25 21:30:43 +02:00
2022-06-20 00:10:57 +02:00
our $VERSION = '2.0.15';
2016-05-25 21:30:43 +02:00
2016-06-09 20:40:20 +02:00
# RUNNING METHODS
2016-05-25 21:30:43 +02:00
## @method Lemonldap::NG::Portal::_Slave checkIP()
# @return true if remote IP is accredited in LL::NG conf
sub checkIP {
my ( $self, $req ) = @_;
my $remoteIP = $req->address;
2016-05-25 21:30:43 +02:00
return 1
if (!$self->conf->{slaveMasterIP}
|| $self->conf->{slaveMasterIP} =~ /\b$remoteIP\b/ );
$self->userLogger->warn('Client IP not accredited for Slave module');
2016-05-25 21:30:43 +02:00
return 0;
}
## @method Lemonldap::NG::Portal::_Slave checkHeader()
# @return true if header content matches LL::NG conf
sub checkHeader {
my ( $self, $req ) = @_;
return 1
unless ( $self->conf->{slaveHeaderName}
and $self->conf->{slaveHeaderContent} );
2019-09-13 22:11:30 +02:00
2022-06-20 00:10:57 +02:00
my $slave_header = 'HTTP_' . uc( $self->conf->{slaveHeaderName} );
2019-09-13 22:11:30 +02:00
$slave_header =~ s/\-/_/g;
my $headerContent = $req->env->{$slave_header};
2020-02-20 23:34:02 +01:00
$self->logger->debug(
"Required Slave header => $self->{conf}->{slaveHeaderName}");
2019-09-13 22:11:30 +02:00
$self->logger->debug("Received Slave header content => $headerContent");
return 1
if ( $headerContent
and $self->conf->{slaveHeaderContent} =~ /\b$headerContent\b/ );
2016-05-25 21:30:43 +02:00
$self->userLogger->warn('Matching header not found for Slave module ');
2016-05-25 21:30:43 +02:00
return 0;
}
1;