From 6ac420ee7dd94066f7f3a96edc82932c08609e3d Mon Sep 17 00:00:00 2001 From: Xavier Guimard Date: Tue, 12 Jan 2016 22:04:07 +0000 Subject: [PATCH] 2 bugs; avoid "each" and complete hash list --- .../lib/Lemonldap/NG/Common/Conf/Constants.pm | 2 +- .../lib/Lemonldap/NG/Common/Conf/Serializer.pm | 3 ++- .../lib/Lemonldap/NG/Manager/Build.pm | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Constants.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Constants.pm index 18b91727e..de6203e03 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Constants.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Constants.pm @@ -23,7 +23,7 @@ use constant HANDLERSECTION => "handler"; use constant MANAGERSECTION => "manager"; use constant SESSIONSEXPLORERSECTION => "sessionsExplorer"; use constant APPLYSECTION => "apply"; -our $hashParameters = qr/^(?:(?:g(?:r(?:antSessionRule|oup)|lobalStorageOption|oogleExportedVar)|l(?:o(?:calSessionStorageOption|goutService)|dapExportedVar)|ca(?:s(?:StorageOption|Attribute)|ptchaStorageOption)|(?:(?:d(?:emo|bi)|facebook|webID)E|e)xportedVar|p(?:ersistentStorageOption|ortalSkinRule)|re(?:moteGlobalStorageOption|loadUrl)|notificationStorageOption|CAS_proxiedService|macro)s|s(?:aml(?:S(?:PMetaDataNode|torageOptions)|IDPMetaDataNode)|essionDataToRemember|laveExportedVars)|o(?:idc(?:S(?:erviceMetaDataAuthnContext|torageOptions)|[OR]PMetaDataNode)|penIdExportedVars)|a(?:uthChoiceModules|pplicationList)|virtualHost)$/; +our $hashParameters = qr/^(?:(?:l(?:o(?:ca(?:lSessionStorageOption|tionRule)|goutService)|dapExportedVar)|(?:(?:d(?:emo|bi)|facebook|webID)ExportedVa|exported(?:Heade|Va))r|g(?:r(?:antSessionRule|oup)|lobalStorageOption|oogleExportedVar)|ca(?:s(?:StorageOption|Attribute)|ptchaStorageOption)|re(?:moteGlobalStorageOption|loadUrl)|notificationStorageOption|CAS_proxiedService|macro)s|o(?:idc(?:OPMetaData(?:(?:ExportedVar|Option)s|J(?:SON|WKS)|Node)|S(?:erviceMetaDataAuthnContext|torageOptions)|RPMetaData(?:(?:ExportedVar|Option)s|Node))|penIdExportedVars)|s(?:aml(?:S(?:PMetaData(?:(?:ExportedAttribute|Option)s|Node|XML)|torageOptions)|IDPMetaData(?:(?:ExportedAttribute|Option)s|Node|XML))|essionDataToRemember|laveExportedVars)|p(?:ersistentStorageOptions|o(?:rtalSkinRules|st))|a(?:uthChoiceModules|pplicationList)|v(?:hostOptions|irtualHost))$/; our %EXPORT_TAGS = ( diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Serializer.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Serializer.pm index e66fd0c74..d01087c6c 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Serializer.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Serializer.pm @@ -91,7 +91,8 @@ sub unserialize { my $conf; # Parse fields - while ( my ( $k, $v ) = each(%$fields) ) { + foreach my $k (keys %$fields) { + my $v = $fields->{$k}; if ( $k =~ $hashParameters ) { unless ( utf8::is_utf8($v) ) { $v = encode( 'UTF-8', $v ); diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build.pm index d1be2cf16..91a2a5e95 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build.pm @@ -222,7 +222,21 @@ $defaultAttr} foreach ( @simpleHashKeys, sort keys %cnodesRe ) { $ra->add($_); } - my $confConstants = "our \$hashParameters = qr/^" . $ra->as_string . "\$/;\n"; + foreach ( + qw(exportedHeaders locationRules post vhostOptions + samlIDPMetaDataXML samlIDPMetaDataExportedAttributes + samlIDPMetaDataOptions samlSPMetaDataXML + samlSPMetaDataExportedAttributes samlSPMetaDataOptions + oidcOPMetaDataJSON oidcOPMetaDataJWKS oidcOPMetaDataOptions + oidcOPMetaDataExportedVars oidcRPMetaDataOptions + oidcRPMetaDataExportedVars) + ) + { + $ra->add($_); + } + + my $confConstants = + "our \$hashParameters = qr/^" . $ra->as_string . "\$/;\n"; open( F, ">", $self->confConstantsFile ) or die($!); print F <