Handler Jail: attribute "safe" renamed into "jail" (#729)

environments/ppa-mbqj77/deployments/1
François-Xavier Deltombe 11 years ago
parent b903597b76
commit aa1c7357fe
  1. 36
      lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Main/Jail.pm
  2. 8
      lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Main/PostForm.pm
  3. 4
      lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Reload.pm
  4. 4
      lemonldap-ng-handler/t/12-Lemonldap-NG-Handler-Jail.t
  5. 4
      lemonldap-ng-handler/t/13-Lemonldap-NG-Handler-Fake-Safe.t

@ -12,23 +12,23 @@ has customFunctions => ( is => 'rw', isa => 'Maybe[Str]' );
has useSafeJail => ( is => 'rw', isa => 'Maybe[Int]' );
has safe => ( is => 'rw' );
has jail => ( is => 'rw' );
our $VERSION = '1.4.0';
use Lemonldap::NG::Handler::Main '$datas';
use Lemonldap::NG::Handler::API ':functions';
## @imethod protected build_safe()
## @imethod protected build_jail()
# Build and return the security jail used to compile rules and headers.
# @return Safe object
sub build_safe {
sub build_jail {
my $self = shift;
return $self->safe
if ( $self->safe
&& $self->safe->useSafeJail == $self->useSafeJail
&& $self->safe->customFunctions == $self->customFunctions );
return $self->jail
if ( $self->jail
&& $self->jail->useSafeJail == $self->useSafeJail
&& $self->jail->customFunctions == $self->customFunctions );
$self->useSafeJail(1) unless defined $self->useSafeJail;
@ -54,29 +54,29 @@ sub build_safe {
}
if ( $self->useSafeJail ) {
$self->safe( Safe->new );
$self->safe->share_from( 'main', ['%ENV'] );
$self->jail( Safe->new );
$self->jail->share_from( 'main', ['%ENV'] );
}
else {
$self->safe($self);
$self->jail($self);
}
# Share objects with Safe jail
$self->safe->share_from( 'Lemonldap::NG::Common::Safelib',
$self->jail->share_from( 'Lemonldap::NG::Common::Safelib',
$Lemonldap::NG::Common::Safelib::functions );
$self->safe->share_from( 'Lemonldap::NG::Handler::Main', ['$datas'] );
$self->safe->share_from(
$self->jail->share_from( 'Lemonldap::NG::Handler::Main', ['$datas'] );
$self->jail->share_from(
'Lemonldap::NG::Handler::API',
[
qw( &hostname &remote_ip &uri &uri_with_args
&unparsed_uri &args &method &header_in )
]
);
$self->safe->share(@t);
$self->safe->share_from( 'MIME::Base64', ['&encode_base64'] );
$self->jail->share(@t);
$self->jail->share_from( 'MIME::Base64', ['&encode_base64'] );
return $self->safe;
return $self->jail;
}
## @method reval
@ -137,8 +137,8 @@ sub jail_reval {
return (
SAFEWRAP
? $self->safe->wrap_code_ref( $self->safe->reval($reval) )
: $self->safe->reval($nosw_reval)
? $self->jail->wrap_code_ref( $self->jail->reval($reval) )
: $self->jail->reval($nosw_reval)
);
}

@ -3,7 +3,7 @@ package Lemonldap::NG::Handler::Main::PostForm;
use strict;
# For importing MP function, $tsv->{transform},
# $tsv->{safe}, $tsv->{useSafeJail}, $tsv->{customFunctions}
# $tsv->{jail}, $tsv->{useSafeJail}, $tsv->{customFunctions}
use Lemonldap::NG::Handler::Main qw( :tsv );
use Lemonldap::NG::Handler::API qw( :httpCodes );
use Lemonldap::NG::Handler::Main::Logger;
@ -72,13 +72,13 @@ sub postFilter {
my $u = URI->new('http:');
my $jail = Lemonldap::NG::Handler::Main::Jail->new(
'safe' => $tsv->{safe},
'jail' => $tsv->{jail},
'useSafeJail' => $tsv->{useSafeJail},
'customFunctions' => $tsv->{customFunctions}
);
$tsv->{safe} = $jail->build_safe();
$tsv->{jail} = $jail->build_jail();
$u->query_form( { $tsv->{safe}->reval($data) } );
$u->query_form( { $tsv->{jail}->reval($data) } );
my $s = $u->query();
# Eat all fake data sent by client

@ -90,11 +90,11 @@ sub jailInit {
my ( $class, $conf, $tsv ) = @_;
$tsv->{jail} = Lemonldap::NG::Handler::Main::Jail->new(
'safe' => $tsv->{jail},
'jail' => $tsv->{jail},
'useSafeJail' => $conf->{useSafeJail},
'customFunctions' => $conf->{customFunctions}
);
$tsv->{jail}->build_safe();
$tsv->{jail}->build_jail();
}
## @imethod protected void defaultValuesInit(hashRef args)

@ -15,13 +15,13 @@ BEGIN { use_ok('Lemonldap::NG::Handler::Main::Jail') }
ok(
my $jail = Lemonldap::NG::Handler::Main::Jail->new(
'safe' => undef,
'jail' => undef,
'useSafeJail' => 1,
'customFunctions' => undef
),
'new jail object'
);
my $safe = $jail->build_safe();
$jail->build_jail();
my $sub1 = "sub { return( basic('login','password') ) }";
my $basic = $jail->jail_reval($sub1);

@ -15,13 +15,13 @@ BEGIN { use_ok('Lemonldap::NG::Handler::Main::Jail') }
ok(
my $jail = Lemonldap::NG::Handler::Main::Jail->new(
'safe' => undef,
'jail' => undef,
'useSafeJail' => 0,
'customFunctions' => undef
),
'new fake jail object'
);
my $safe = $jail->build_safe();
$jail->build_jail();
my $sub1 = "sub { return( basic('login','password') ) }";
my $basic = $jail->jail_reval($sub1);

Loading…
Cancel
Save