##@file # Slave common functions ##@class # Slave common functions package Lemonldap::NG::Portal::Lib::Slave; use Exporter; use base qw(Exporter); use strict; our @EXPORT = qw(checkIP checkHeader); our $VERSION = '2.0.6'; # RUNNING METHODS ## @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; return 1 if (!$self->conf->{slaveMasterIP} || $self->conf->{slaveMasterIP} =~ /\b$remoteIP\b/ ); $self->userLogger->warn('Client IP not accredited for Slave module'); 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} ); my $slave_header = 'HTTP_' . uc( $self->{conf}->{slaveHeaderName} ); $slave_header =~ s/\-/_/g; my $headerContent = $req->env->{$slave_header}; $self->logger->debug("Required Slave header => $self->{conf}->{slaveHeaderName}"); $self->logger->debug("Received Slave header content => $headerContent"); return 1 if ( $headerContent and $self->conf->{slaveHeaderContent} =~ /\b$headerContent\b/ ); $self->userLogger->warn('Matching header not found for Slave module '); return 0; } 1;