From 8f5fcaf2b843607d3bb7fed364eacd2522ef9eb5 Mon Sep 17 00:00:00 2001 From: Xavier Guimard Date: Thu, 17 Dec 2015 22:25:01 +0000 Subject: [PATCH] Add sessionTypes constant --- .../lib/Lemonldap/NG/Manager/Constants.pm | 4 +++- lemonldap-ng-manager/scripts/jsongenerator.pl | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Constants.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Constants.pm index ac36d239c..63c71b2e4 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Constants.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Constants.pm @@ -7,7 +7,7 @@ use base qw(Exporter); our $VERSION = '2.0.0'; -our %EXPORT_TAGS = ( 'all' => [qw($simpleHashKeys $specialNodeKeys $oidcOPMetaDataNodeKeys $oidcRPMetaDataNodeKeys $samlIDPMetaDataNodeKeys $samlSPMetaDataNodeKeys $virtualHostKeys $specialNodeHash)] ); +our %EXPORT_TAGS = ( 'all' => [qw($simpleHashKeys $specialNodeKeys $oidcOPMetaDataNodeKeys $oidcRPMetaDataNodeKeys $samlIDPMetaDataNodeKeys $samlSPMetaDataNodeKeys $virtualHostKeys $specialNodeHash @sessionTypes)] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = ( @{ $EXPORT_TAGS{'all'} } ); @@ -19,6 +19,8 @@ our $specialNodeHash = { oidcRPMetaDataNodes => [qw(oidcRPMetaDataOptions oidcRPMetaDataExportedVars)], }; +our @sessionTypes = ( 'captcha', 'remoteGlobal', 'cas', 'global', 'localSession', 'persistent', 'saml', 'oidc' ); + our $simpleHashKeys = '(?:(?:g(?:r(?:antSessionRule|oup)|lobalStorageOption|oogleExportedVar)|l(?:o(?:calSessionStorageOption|goutService)|dapExportedVar)|(?:(?:d(?:emo|bi)|facebook|webID)E|e)xportedVar|(?:ca(?:ptcha|s)|notification)StorageOption|p(?:ersistentStorageOption|ortalSkinRule)|re(?:moteGlobalStorageOption|loadUrl)|CAS_proxiedService|macro)s|o(?:idcS(?:erviceMetaDataAuthnContext|torageOptions)|penIdExportedVars)|s(?:(?:amlStorageOption|laveExportedVar)s|essionDataToRemember)|a(?:uthChoiceModules|pplicationList))'; our $specialNodeKeys = '(?:(?:saml(?:ID|S)|oidc[OR])PMetaDataNode|virtualHost)s'; our $oidcOPMetaDataNodeKeys = 'oidcOPMetaData(?:Options(?:C(?:lient(?:Secret|ID)|heckJWTSignature|onfigurationURI)|TokenEndpointAuthMethod|(?:JWKSTimeou|Promp)t|I(?:DTokenMaxAge|con)|U(?:iLocales|seNonce)|Display(?:Name)?|(?:MaxAg|Scop)e|AcrValues)|ExportedVars|J(?:SON|WKS))'; diff --git a/lemonldap-ng-manager/scripts/jsongenerator.pl b/lemonldap-ng-manager/scripts/jsongenerator.pl index 2e244e9f1..9a7fa36bd 100755 --- a/lemonldap-ng-manager/scripts/jsongenerator.pl +++ b/lemonldap-ng-manager/scripts/jsongenerator.pl @@ -30,6 +30,7 @@ my $managerConstants = "lib/Lemonldap/NG/Manager/Constants.pm"; my $defaultValuesFile = "../lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm"; my @simpleHashKeys; +my @sessionTypes; my @cnodesKeys; my %cnodesRe; @@ -128,12 +129,13 @@ $tmp =~ s/:\s*"(\d+)"\s*(["\}])/:$1$2/sg; print F $tmp; close F; $tmp = undef; +my $sessionTypes = join( "', '", @sessionTypes ); open F, ">$managerConstants" or die($!); my $exportedVars = '$' . join( 'Keys $', 'simpleHash', 'specialNode', sort keys %cnodesRe ) - . 'Keys $specialNodeHash'; + . 'Keys $specialNodeHash @sessionTypes'; print F < [qw(oidcRPMetaDataOptions oidcRPMetaDataExportedVars)], }; +our \@sessionTypes = ( '$sessionTypes' ); + EOF my $ra = Regexp::Assemble->new; @@ -199,7 +203,7 @@ eval { destination => \$dst ); }; -$dst = $defaultAttr if($@); +$dst = $defaultAttr if ($@); open( F, "> $defaultValuesFile" ) or die($!); print F $dst; @@ -269,6 +273,7 @@ sub scanTree { if ( $leaf =~ s/^\*// ) { push @angularScopeVars, [ $leaf, "$path._nodes[$ord]" ]; } + push @sessionTypes, $1 if ( $leaf =~ /^(.*)(?{$leaf} or die("Missing attribute $leaf"); $jleaf = { id => "$prefix$leaf", title => $leaf }; unless ( $attr->{type} ) {