Add sessionTypes constant

This commit is contained in:
Xavier Guimard 2015-12-17 22:25:01 +00:00
parent cc38a382e2
commit 8f5fcaf2b8
2 changed files with 10 additions and 3 deletions

View File

@ -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))';

View File

@ -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 <<EOF;
# This file is generated by $0. Don't modify it by hand
package Lemonldap::NG::Manager::Constants;
@ -156,6 +158,8 @@ our \$specialNodeHash = {
oidcRPMetaDataNodes => [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 =~ /^(.*)(?<!notification)StorageOptions$/ );
my $attr = $attributes->{$leaf} or die("Missing attribute $leaf");
$jleaf = { id => "$prefix$leaf", title => $leaf };
unless ( $attr->{type} ) {