diff --git a/modules/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Simple.pm b/modules/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Simple.pm index 6a5f26917..ab1adf23b 100644 --- a/modules/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Simple.pm +++ b/modules/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Simple.pm @@ -244,12 +244,14 @@ sub regRemoteIp { # @param $h Name of the header # @param $v Value of the header sub lmSetHeaderIn { - my ( $r, $h, $v ) = splice @_; + my ( $r, %hdr ) = splice @_; + while ( my ( $h, $v ) = each %hdr ) { if ( MP() == 2 ) { - return $r->headers_in->set( $h => $v ); + $r->headers_in->set( $h => $v ); } elsif ( MP() == 1 ) { - return $r->header_in( $h => $v ); + $r->header_in( $h => $v ); + } } } @@ -344,11 +346,10 @@ sub safe { }"; $class->lmLog( $@, 'error' ) if ($@); } - $safe->share_from( 'main', [ '%ENV', 'APR::Table::set' ] ); + $safe->share_from( 'main', [ '%ENV' ] ); $safe->share_from( 'Lemonldap::NG::Common::Safelib', $Lemonldap::NG::Common::Safelib::functions ); - $safe->share( '&encode_base64', '$datas', '&lmSetHeaderIn', - '$apacheRequest', '&portal', @t ); + $safe->share( '&encode_base64', '$datas', '&portal', @t ); return $safe; } @@ -1210,14 +1211,12 @@ sub forgeHeadersInit { my $sub; foreach ( keys %tmp ) { - $sub .= - "lmSetHeaderIn(\$apacheRequest,'$_' => join('',split(/[\\r\\n]+/," - . $tmp{$_} . ")));"; + $sub .= "'$_' => join('',split(/[\\r\\n]+/,$tmp{$_})),"; } $forgeHeaders = ( SAFEWRAP ? $class->safe->wrap_code_ref( $class->safe->reval("sub{$sub}") ) - : $class->safe->reval("sub{$sub}") + : $class->safe->reval("sub{return($sub)}") ); $class->lmLog( "$class: Unable to forge headers: $@: sub {$sub}", 'error' ) if ($@); @@ -1254,7 +1253,7 @@ qq{
join('',split(/[\\r\\n]+/," - . $tmp{$_} . ")));"; + $sub .= "'$_' => join('',split(/[\\r\\n]+/,$tmp{$_})),"; } $forgeHeaders->{$vhost} = ( SAFEWRAP ? $class->safe->wrap_code_ref( $class->safe->reval("sub {$sub}") ) - : $class->safe->reval("sub {$sub}") + : $class->safe->reval("sub {return($sub)}") ); $class->lmLog( "$class: Unable to forge headers: $@: sub {$sub}", 'error' ) @@ -126,10 +124,7 @@ sub sendHeaders { my $vhost; $vhost = $apacheRequest->hostname; if ( defined( $forgeHeaders->{$vhost} ) ) { - &{ $forgeHeaders->{$vhost} }; - } - else { - lmSetHeaderIn( $apacheRequest, 'Auth-User' => $datas->{uid} ); + lmSetHeaderIn( $apacheRequest, &{ $forgeHeaders->{$vhost} } ); } } @@ -271,7 +266,6 @@ it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available. =cut - ## @imethod protected void postUrlInit() # Prepare methods to post form attributes sub postUrlInit {