Avoid compiling methods in rules verification (#1160)

This cause customFunctions to return 1 after conf save with Nginx
This commit is contained in:
Xavier Guimard 2017-02-10 14:21:52 +00:00
parent e7cb171f02
commit 57330851f8
3 changed files with 2 additions and 151 deletions

View File

@ -1,3 +1,5 @@
* securize SOAP session creation by cipher
* write REST method to create session with an id
* remove cache on handler init()
* public\_page
* GrantSession plugin

View File

@ -24,23 +24,6 @@ sub types {
'test' => sub {
my ( $val, $conf ) = @_;
my $s = '';
my (@cf) = (
'encode_base64', 'checkLogonHours',
'date', 'checkDate',
'basic', 'unicode2iso',
'iso2unicode', 'groupMatch',
'encrypt'
);
push @cf, defined $conf->{'customFunctions'}
? map( {
my $f = $_;
$f =~ s/\w+:://g;
$f, $_;
} split( /\s+/, $conf->{'customFunctions'}, 0 ) )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
BEGIN {
${^WARNING_BITS} =
@ -878,23 +861,6 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
'test' => sub {
my ( $val, $conf ) = @_;
my $s = $val;
my (@cf) = (
'encode_base64', 'checkLogonHours',
'date', 'checkDate',
'basic', 'unicode2iso',
'iso2unicode', 'groupMatch',
'encrypt'
);
push @cf, defined $conf->{'customFunctions'}
? map( {
my $f = $_;
$f =~ s/\w+:://g;
$f, $_;
} split( /\s+/, $conf->{'customFunctions'}, 0 ) )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
BEGIN {
${^WARNING_BITS} =
@ -959,23 +925,6 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
'keyTest' => sub {
my ( $val, $conf ) = @_;
my $s = '';
my (@cf) = (
'encode_base64', 'checkLogonHours',
'date', 'checkDate',
'basic', 'unicode2iso',
'iso2unicode', 'groupMatch',
'encrypt'
);
push @cf, defined $conf->{'customFunctions'}
? map( {
my $f = $_;
$f =~ s/\w+:://g;
$f, $_;
} split( /\s+/, $conf->{'customFunctions'}, 0 ) )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
BEGIN {
${^WARNING_BITS} =
@ -994,23 +943,6 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
'test' => sub {
my ( $val, $conf ) = @_;
my $s = '';
my (@cf) = (
'encode_base64', 'checkLogonHours',
'date', 'checkDate',
'basic', 'unicode2iso',
'iso2unicode', 'groupMatch',
'encrypt'
);
push @cf, defined $conf->{'customFunctions'}
? map( {
my $f = $_;
$f =~ s/\w+:://g;
$f, $_;
} split( /\s+/, $conf->{'customFunctions'}, 0 ) )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
BEGIN {
${^WARNING_BITS} =
@ -1318,23 +1250,6 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
: ( 0, '__badUrl__' );
}
$s =~ s/\b(accept|deny|unprotect|skip)\b/1/g;
my (@cf) = (
'encode_base64', 'checkLogonHours',
'date', 'checkDate',
'basic', 'unicode2iso',
'iso2unicode', 'groupMatch',
'encrypt'
);
push @cf, defined $conf->{'customFunctions'}
? map( {
my $f = $_;
$f =~ s/\w+:://g;
$f, $_;
} split( /\s+/, $conf->{'customFunctions'}, 0 ) )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
BEGIN {
${^WARNING_BITS} =
@ -1364,23 +1279,6 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
'test' => sub {
my ( $val, $conf ) = @_;
my $s = '';
my (@cf) = (
'encode_base64', 'checkLogonHours',
'date', 'checkDate',
'basic', 'unicode2iso',
'iso2unicode', 'groupMatch',
'encrypt'
);
push @cf, defined $conf->{'customFunctions'}
? map( {
my $f = $_;
$f =~ s/\w+:://g;
$f, $_;
} split( /\s+/, $conf->{'customFunctions'}, 0 ) )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
BEGIN {
${^WARNING_BITS} =
@ -2000,23 +1898,6 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
'keyTest' => sub {
my ( $val, $conf ) = @_;
my $s = '';
my (@cf) = (
'encode_base64', 'checkLogonHours',
'date', 'checkDate',
'basic', 'unicode2iso',
'iso2unicode', 'groupMatch',
'encrypt'
);
push @cf, defined $conf->{'customFunctions'}
? map( {
my $f = $_;
$f =~ s/\w+:://g;
$f, $_;
} split( /\s+/, $conf->{'customFunctions'}, 0 ) )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
BEGIN {
${^WARNING_BITS} =

View File

@ -13,18 +13,6 @@ use Regexp::Common qw/URI/;
my $perlExpr = sub {
my ( $val, $conf ) = @_;
my $s = '';
my @cf = qw(
encode_base64 checkLogonHours date checkDate basic unicode2iso
iso2unicode groupMatch encrypt
);
push @cf,
defined $conf->{customFunctions}
? map { my $f = $_; $f =~ s/\w+:://g; ( $f, $_ ) }
split( /\s+/, $conf->{customFunctions} )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
no warnings( 'redefine', 'uninitialized' );
eval "$s $val";
return $@ ? ( 1, "__badExpression__: $@" ) : (1);
@ -1053,16 +1041,6 @@ sub attributes {
: ( 0, '__badUrl__' );
}
$s =~ s/\b(accept|deny|unprotect|skip)\b/1/g;
my @cf =
qw(encode_base64 checkLogonHours date checkDate basic unicode2iso iso2unicode groupMatch encrypt);
push @cf,
defined $conf->{customFunctions}
? map { my $f = $_; $f =~ s/\w+:://g; ( $f, $_ ) }
split( /\s+/, $conf->{customFunctions} )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
no warnings( 'redefine', 'uninitialized' );
eval $s;
return $@ ? ( 1, "__badExpression__: $@" ) : (1);
@ -1087,16 +1065,6 @@ sub attributes {
test => sub {
my ( $val, $conf ) = @_;
my $s = $val;
my @cf =
qw(encode_base64 checkLogonHours date checkDate basic unicode2iso iso2unicode groupMatch encrypt);
push @cf,
defined $conf->{customFunctions}
? map { my $f = $_; $f =~ s/\w+:://g; ( $f, $_ ) }
split( /\s+/, $conf->{customFunctions} )
: ();
foreach my $f (@cf) {
$s = "sub $f {1} $s";
}
no warnings( 'redefine', 'uninitialized' );
eval $s;
return $@ ? ( 1, "__badExpression__: $@" ) : (1);