WIP - Comment safe

environments/ppa-mbqj77/deployments/544
Christophe Maudoux 7 years ago
parent 2d8f2d402e
commit e3999aad6b
  1. 2
      lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Constants.pm
  2. 2
      lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/ReConstants.pm
  3. 35
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm
  4. 7
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm
  5. 2
      lemonldap-ng-manager/site/htdocs/static/struct.json

@ -23,7 +23,7 @@ use constant HANDLERSECTION => "handler";
use constant MANAGERSECTION => "manager"; use constant MANAGERSECTION => "manager";
use constant SESSIONSEXPLORERSECTION => "sessionsExplorer"; use constant SESSIONSEXPLORERSECTION => "sessionsExplorer";
use constant APPLYSECTION => "apply"; use constant APPLYSECTION => "apply";
our $hashParameters = qr/^(?:(?:l(?:o(?:ca(?:lSessionStorageOption|tionRule)|goutService)|dapExportedVar|wp(?:Ssl)?Opt)|(?:(?:d(?:emo|bi)|facebook|webID)ExportedVa|exported(?:Heade|Va)|issuerDBGetParamete)r|re(?:moteGlobalStorageOption|st2f(?:Verify|Init)Arg|loadUrl)|g(?:r(?:antSessionRule|oup)|lobalStorageOption)|n(?:otificationStorageOption|ginxCustomHandler)|macro)s|o(?:idc(?:RPMetaData(?:(?:Option(?:sExtraClaim)?|ExportedVar)s|Node)|OPMetaData(?:(?:ExportedVar|Option)s|J(?:SON|WKS)|Node)|S(?:erviceMetaDataAuthnContext|torageOptions))|penIdExportedVars)|s(?:aml(?:S(?:PMetaData(?:(?:ExportedAttribute|Option)s|Node|XML)|torageOptions)|IDPMetaData(?:(?:ExportedAttribute|Option)s|Node|XML))|essionDataToRemember|laveExportedVars)|c(?:as(?:S(?:rvMetaData(?:(?:ExportedVar|Option)s|Node)|torageOptions)|A(?:ppMetaData(?:(?:ExportedVar|Option)s|Node)|ttributes))|(?:ustomAddParam|ombModule)s)|p(?:ersistentStorageOptions|o(?:rtalSkinRules|st))|a(?:ut(?:hChoiceMod|oSigninR)ules|pplicationList)|v(?:hostOptions|irtualHost)|S(?:MTPTLSOpts|SLVarIf))$/; our $hashParameters = qr/^(?:(?:l(?:o(?:ca(?:lSessionStorageOption|tionRule)|goutService)|dapExportedVar|wp(?:Ssl)?Opt)|(?:(?:d(?:emo|bi)|facebook|webID)ExportedVa|exported(?:Heade|Va)|issuerDBGetParamete)r|re(?:moteGlobalStorageOption|st2f(?:Verify|Init)Arg)|g(?:r(?:antSessionRule|oup)|lobalStorageOption)|n(?:otificationStorageOption|ginxCustomHandler)|macro)s|o(?:idc(?:RPMetaData(?:(?:Option(?:sExtraClaim)?|ExportedVar)s|Node)|OPMetaData(?:(?:ExportedVar|Option)s|J(?:SON|WKS)|Node)|S(?:erviceMetaDataAuthnContext|torageOptions))|penIdExportedVars)|s(?:aml(?:S(?:PMetaData(?:(?:ExportedAttribute|Option)s|Node|XML)|torageOptions)|IDPMetaData(?:(?:ExportedAttribute|Option)s|Node|XML))|essionDataToRemember|laveExportedVars)|c(?:as(?:S(?:rvMetaData(?:(?:ExportedVar|Option)s|Node)|torageOptions)|A(?:ppMetaData(?:(?:ExportedVar|Option)s|Node)|ttributes))|(?:ustomAddParam|ombModule)s)|p(?:ersistentStorageOptions|o(?:rtalSkinRules|st))|a(?:ut(?:hChoiceMod|oSigninR)ules|pplicationList)|v(?:hostOptions|irtualHost)|S(?:MTPTLSOpts|SLVarIf))$/;
our @sessionTypes = ( 'remoteGlobal', 'global', 'localSession', 'persistent', 'saml', 'oidc', 'cas' ); our @sessionTypes = ( 'remoteGlobal', 'global', 'localSession', 'persistent', 'saml', 'oidc', 'cas' );

@ -22,7 +22,7 @@ our $specialNodeHash = {
}; };
our $doubleHashKeys = 'issuerDBGetParameters'; our $doubleHashKeys = 'issuerDBGetParameters';
our $simpleHashKeys = '(?:(?:l(?:o(?:calSessionStorageOption|goutService)|dapExportedVar|wp(?:Ssl)?Opt)|re(?:moteGlobalStorageOption|st2f(?:Verify|Init)Arg|loadUrl)|c(?:as(?:StorageOption|Attribute)|ustomAddParam|ombModule)|(?:(?:d(?:emo|bi)|facebook|webID)E|e)xportedVar|g(?:r(?:antSessionRule|oup)|lobalStorageOption)|n(?:otificationStorageOption|ginxCustomHandler)|p(?:ersistentStorageOption|ortalSkinRule)|macro)s|o(?:idcS(?:erviceMetaDataAuthnContext|torageOptions)|penIdExportedVars)|s(?:(?:amlStorageOption|laveExportedVar)s|essionDataToRemember)|a(?:ut(?:hChoiceMod|oSigninR)ules|pplicationList)|S(?:MTPTLSOpts|SLVarIf))'; our $simpleHashKeys = '(?:(?:l(?:o(?:calSessionStorageOption|goutService)|dapExportedVar|wp(?:Ssl)?Opt)|c(?:as(?:StorageOption|Attribute)|ustomAddParam|ombModule)|re(?:moteGlobalStorageOption|st2f(?:Verify|Init)Arg)|(?:(?:d(?:emo|bi)|facebook|webID)E|e)xportedVar|g(?:r(?:antSessionRule|oup)|lobalStorageOption)|n(?:otificationStorageOption|ginxCustomHandler)|p(?:ersistentStorageOption|ortalSkinRule)|macro)s|o(?:idcS(?:erviceMetaDataAuthnContext|torageOptions)|penIdExportedVars)|s(?:(?:amlStorageOption|laveExportedVar)s|essionDataToRemember)|a(?:ut(?:hChoiceMod|oSigninR)ules|pplicationList)|S(?:MTPTLSOpts|SLVarIf))';
our $specialNodeKeys = '(?:(?:(?:saml(?:ID|S)|oidc[OR])P|cas(?:App|Srv))MetaDataNode|virtualHost)s'; our $specialNodeKeys = '(?:(?:(?:saml(?:ID|S)|oidc[OR])P|cas(?:App|Srv))MetaDataNode|virtualHost)s';
our $casAppMetaDataNodeKeys = 'casAppMetaData(?:Options(?:Servic|Rul)e|ExportedVars)'; our $casAppMetaDataNodeKeys = 'casAppMetaData(?:Options(?:Servic|Rul)e|ExportedVars)';
our $casSrvMetaDataNodeKeys = 'casSrvMetaData(?:Options(?:ProxiedServices|DisplayName|Gateway|Renew|Icon|Url)|ExportedVars)'; our $casSrvMetaDataNodeKeys = 'casSrvMetaData(?:Options(?:ProxiedServices|DisplayName|Gateway|Renew|Icon|Url)|ExportedVars)';

@ -28,8 +28,7 @@ sub types {
'msgFail' => '__notAValidPerlExpression__', 'msgFail' => '__notAValidPerlExpression__',
'test' => sub { 'test' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -670,8 +669,7 @@ sub attributes {
'casAppMetaDataOptionsRule' => { 'casAppMetaDataOptionsRule' => {
'test' => sub { 'test' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -1046,8 +1044,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'keyTest' => qr/^(?=[^\-])[\w\-]+(?<=[^-])$/, 'keyTest' => qr/^(?=[^\-])[\w\-]+(?<=[^-])$/,
'test' => sub { 'test' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = $val; my $s = $val;
'Safe'->new->reval("no warnings;$s");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -1130,8 +1127,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'grantSessionRules' => { 'grantSessionRules' => {
'keyTest' => sub { 'keyTest' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -1148,8 +1144,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'default' => {}, 'default' => {},
'test' => sub { 'test' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -1503,7 +1498,6 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
: ( 0, '__badUrl__' ); : ( 0, '__badUrl__' );
} }
$s =~ s/\b(accept|deny|unprotect|skip)\b/1/g; $s =~ s/\b(accept|deny|unprotect|skip)\b/1/g;
'Safe'->new->reval("no warnings;$s");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -1543,8 +1537,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'keyTest' => qr/^[_a-zA-Z][a-zA-Z0-9_]*$/, 'keyTest' => qr/^[_a-zA-Z][a-zA-Z0-9_]*$/,
'test' => sub { 'test' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -1903,8 +1896,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'oidcRPMetaDataOptionsRule' => { 'oidcRPMetaDataOptionsRule' => {
'test' => sub { 'test' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -2250,8 +2242,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
'keyMsgFail' => '__badSkinRule__', 'keyMsgFail' => '__badSkinRule__',
'keyTest' => sub { 'keyTest' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }
@ -2372,12 +2363,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'type' => 'int' 'type' => 'int'
}, },
'reloadUrls' => { 'reloadUrls' => {
'keyTest' => 'type' => 'text'
qr/^(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-9]*[a-zA-Z0-9]|[a-zA-Z])[.]?)|(?:[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+))(?::\d+)?$/,
'msgFail' => '__badUrl__',
'test' =>
qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-9]*[a-zA-Z0-9]|[a-zA-Z])[.]?)|(?:[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+)))(?::(?:(?:[0-9]*)))?(?:\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9\-_.!~*'():@&=+\$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\-_.!~*'():@&=+\$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*)(?:\/(?:(?:(?:[a-zA-Z0-9\-_.!~*'():@&=+\$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\-_.!~*'():@&=+\$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*))*))(?:[?](?:(?:(?:[;\/?:@&=+\$,a-zA-Z0-9\-_.!~*'()]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)))?))?)/,
'type' => 'keyTextContainer'
}, },
'remoteCookieName' => { 'remoteCookieName' => {
'type' => 'text' 'type' => 'text'
@ -2986,8 +2972,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
'samlSPMetaDataOptionsRule' => { 'samlSPMetaDataOptionsRule' => {
'test' => sub { 'test' => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
'Safe'->new->reval("no warning; $s $val");
my $err = join( my $err = join(
'', '',
grep( { $_ =~ /Undefined subroutine/ ? () : $_; } grep( { $_ =~ /Undefined subroutine/ ? () : $_; }

@ -10,10 +10,11 @@ our $VERSION = '2.0.0';
use strict; use strict;
use Regexp::Common qw/URI/; use Regexp::Common qw/URI/;
my $perlExpr = sub { my $perlExpr = sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = ''; my $s = '';
Safe->new->reval("no warning; $s $val"); #Safe->new->reval("no warning $s $val");
my $err = join( '', my $err = join( '',
grep { $_ =~ /Undefined subroutine/ ? () : $_ } split( /\n/, $@ ) ); grep { $_ =~ /Undefined subroutine/ ? () : $_ } split( /\n/, $@ ) );
return $err ? ( 1, "__badExpression__: $err" ) : (1); return $err ? ( 1, "__badExpression__: $err" ) : (1);
@ -1498,7 +1499,7 @@ sub attributes {
: ( 0, '__badUrl__' ); : ( 0, '__badUrl__' );
} }
$s =~ s/\b(accept|deny|unprotect|skip)\b/1/g; $s =~ s/\b(accept|deny|unprotect|skip)\b/1/g;
Safe->new->reval("no warnings;$s"); #Safe->new->reval("no warnings $s");
my $err = join( '', my $err = join( '',
grep { $_ =~ /Undefined subroutine/ ? () : $_ } grep { $_ =~ /Undefined subroutine/ ? () : $_ }
split( /\n/, $@ ) ); split( /\n/, $@ ) );
@ -1523,7 +1524,7 @@ sub attributes {
test => sub { test => sub {
my ( $val, $conf ) = @_; my ( $val, $conf ) = @_;
my $s = $val; my $s = $val;
Safe->new->reval("no warnings;$s"); #Safe->new->reval("no warnings $s");
my $err = join( '', my $err = join( '',
grep { $_ =~ /Undefined subroutine/ ? () : $_ } grep { $_ =~ /Undefined subroutine/ ? () : $_ }
split( /\n/, $@ ) ); split( /\n/, $@ ) );

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save