Sorting OIDc (#1704)

This commit is contained in:
Antoine ROSIER 2019-04-10 16:37:39 +02:00
parent 8636da45be
commit f7b296b032
15 changed files with 26 additions and 4 deletions

View File

@ -26,7 +26,7 @@ our $simpleHashKeys = '(?:(?:l(?:o(?:calSessionStorageOption|goutService)|dapExp
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)';
our $oidcOPMetaDataNodeKeys = 'oidcOPMetaData(?:Options(?:C(?:lient(?:Secret|ID)|heckJWTSignature|onfigurationURI)|TokenEndpointAuthMethod|(?:JWKSTimeou|Promp)t|I(?:DTokenMaxAge|con)|S(?:toreIDToken|cope)|U(?:iLocales|seNonce)|Display(?:Name)?|AcrValues|MaxAge)|ExportedVars|J(?:SON|WKS))'; our $oidcOPMetaDataNodeKeys = 'oidcOPMetaData(?:Options(?:C(?:lient(?:Secret|ID)|heckJWTSignature|onfigurationURI)|S(?:toreIDToken|ortNumber|cope)|TokenEndpointAuthMethod|(?:JWKSTimeou|Promp)t|I(?:DTokenMaxAge|con)|U(?:iLocales|seNonce)|Display(?:Name)?|AcrValues|MaxAge)|ExportedVars|J(?:SON|WKS))';
our $oidcRPMetaDataNodeKeys = 'oidcRPMetaData(?:Options(?:(?:PostLogoutRedirectUri|ExtraClaim)s|I(?:DToken(?:Expiration|SignAlg)|con)|Logout(?:SessionRequired|Type|Url)|AccessTokenExpiration|R(?:edirectUris|ule)|Client(?:Secret|ID)|BypassConsent|DisplayName|UserIDAttr)|ExportedVars)'; our $oidcRPMetaDataNodeKeys = 'oidcRPMetaData(?:Options(?:(?:PostLogoutRedirectUri|ExtraClaim)s|I(?:DToken(?:Expiration|SignAlg)|con)|Logout(?:SessionRequired|Type|Url)|AccessTokenExpiration|R(?:edirectUris|ule)|Client(?:Secret|ID)|BypassConsent|DisplayName|UserIDAttr)|ExportedVars)';
our $samlIDPMetaDataNodeKeys = 'samlIDPMetaData(?:Options(?:(?:Check(?:S[LS]OMessageSignatur|Audienc|Tim)|EncryptionMod|UserAttribut|DisplayNam)e|S(?:ignS[LS]OMessage|toreSAMLToken|[LS]OBinding|ortNumber)|A(?:llow(?:LoginFromIDP|ProxiedAuthn)|daptSessionUtime)|Re(?:questedAuthnContext|solutionRule|layStateURL)|Force(?:Authn|UTF8)|I(?:sPassive|con)|NameIDFormat)|ExportedAttributes|XML)'; our $samlIDPMetaDataNodeKeys = 'samlIDPMetaData(?:Options(?:(?:Check(?:S[LS]OMessageSignatur|Audienc|Tim)|EncryptionMod|UserAttribut|DisplayNam)e|S(?:ignS[LS]OMessage|toreSAMLToken|[LS]OBinding|ortNumber)|A(?:llow(?:LoginFromIDP|ProxiedAuthn)|daptSessionUtime)|Re(?:questedAuthnContext|solutionRule|layStateURL)|Force(?:Authn|UTF8)|I(?:sPassive|con)|NameIDFormat)|ExportedAttributes|XML)';
our $samlSPMetaDataNodeKeys = 'samlSPMetaData(?:Options(?:N(?:ameID(?:SessionKey|Format)|otOnOrAfterTimeout)|S(?:essionNotOnOrAfterTimeout|ignS[LS]OMessage)|(?:CheckS[LS]OMessageSignatur|OneTimeUs|Rul)e|En(?:ableIDPInitiatedURL|cryptionMode)|ForceUTF8)|ExportedAttributes|XML)'; our $samlSPMetaDataNodeKeys = 'samlSPMetaData(?:Options(?:N(?:ameID(?:SessionKey|Format)|otOnOrAfterTimeout)|S(?:essionNotOnOrAfterTimeout|ignS[LS]OMessage)|(?:CheckS[LS]OMessageSignatur|OneTimeUs|Rul)e|En(?:ableIDPInitiatedURL|cryptionMode)|ForceUTF8)|ExportedAttributes|XML)';

View File

@ -1866,6 +1866,9 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'default' => 'openid profile', 'default' => 'openid profile',
'type' => 'text' 'type' => 'text'
}, },
'oidcOPMetaDataOptionsSortNumber' => {
'type' => 'int'
},
'oidcOPMetaDataOptionsStoreIDToken' => { 'oidcOPMetaDataOptionsStoreIDToken' => {
'default' => 0, 'default' => 0,
'type' => 'bool' 'type' => 'bool'

View File

@ -3343,6 +3343,7 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
oidcOPMetaDataOptionsDisplayName => { type => 'text', }, oidcOPMetaDataOptionsDisplayName => { type => 'text', },
oidcOPMetaDataOptionsIcon => { type => 'text', }, oidcOPMetaDataOptionsIcon => { type => 'text', },
oidcOPMetaDataOptionsStoreIDToken => { type => 'bool', default => 0 }, oidcOPMetaDataOptionsStoreIDToken => { type => 'bool', default => 0 },
oidcOPMetaDataOptionsSortNumber => { type => 'int', },
oidcRPMetaDataOptionsRule => { oidcRPMetaDataOptionsRule => {
type => 'text', type => 'text',

View File

@ -179,7 +179,8 @@ sub cTrees {
form => 'simpleInputContainer', form => 'simpleInputContainer',
nodes => [ nodes => [
'oidcOPMetaDataOptionsDisplayName', 'oidcOPMetaDataOptionsDisplayName',
'oidcOPMetaDataOptionsIcon' 'oidcOPMetaDataOptionsIcon',
'oidcOPMetaDataOptionsSortNumber'
] ]
}, },
], ],

View File

@ -336,6 +336,12 @@ function templates(tpl,key) {
"get" : tpl+"s/"+key+"/"+"oidcOPMetaDataOptionsIcon", "get" : tpl+"s/"+key+"/"+"oidcOPMetaDataOptionsIcon",
"id" : tpl+"s/"+key+"/"+"oidcOPMetaDataOptionsIcon", "id" : tpl+"s/"+key+"/"+"oidcOPMetaDataOptionsIcon",
"title" : "oidcOPMetaDataOptionsIcon" "title" : "oidcOPMetaDataOptionsIcon"
},
{
"get" : tpl+"s/"+key+"/"+"oidcOPMetaDataOptionsSortNumber",
"id" : tpl+"s/"+key+"/"+"oidcOPMetaDataOptionsSortNumber",
"title" : "oidcOPMetaDataOptionsSortNumber",
"type" : "int"
} }
], ],
"id" : "oidcOPMetaDataOptionsDisplayParams", "id" : "oidcOPMetaDataOptionsDisplayParams",

File diff suppressed because one or more lines are too long

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"عرض الاسم", "oidcOPMetaDataOptionsDisplayName":"عرض الاسم",
"oidcOPMetaDataOptionsDisplayParams":"عرض", "oidcOPMetaDataOptionsDisplayParams":"عرض",
"oidcOPMetaDataOptionsIcon":"شعار", "oidcOPMetaDataOptionsIcon":"شعار",
"oidcOPMetaDataOptionsSortNumber":"Order",
"oidcOPMetaDataOptionsJWKSTimeout":"مهلة بيانات JWKS", "oidcOPMetaDataOptionsJWKSTimeout":"مهلة بيانات JWKS",
"oidcRPMetaDataOptionsLogoutSessionRequired":"جلسة مطلوب", "oidcRPMetaDataOptionsLogoutSessionRequired":"جلسة مطلوب",
"oidcRPMetaDataOptionsLogoutType":"نوع", "oidcRPMetaDataOptionsLogoutType":"نوع",

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"Display name", "oidcOPMetaDataOptionsDisplayName":"Display name",
"oidcOPMetaDataOptionsDisplayParams":"Display", "oidcOPMetaDataOptionsDisplayParams":"Display",
"oidcOPMetaDataOptionsIcon":"Logo", "oidcOPMetaDataOptionsIcon":"Logo",
"oidcOPMetaDataOptionsSortNumber":"Order",
"oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout", "oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout",
"oidcRPMetaDataOptionsLogoutSessionRequired":"Session required", "oidcRPMetaDataOptionsLogoutSessionRequired":"Session required",
"oidcRPMetaDataOptionsLogoutType":"Type", "oidcRPMetaDataOptionsLogoutType":"Type",

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"Display name", "oidcOPMetaDataOptionsDisplayName":"Display name",
"oidcOPMetaDataOptionsDisplayParams":"Display", "oidcOPMetaDataOptionsDisplayParams":"Display",
"oidcOPMetaDataOptionsIcon":"Logo", "oidcOPMetaDataOptionsIcon":"Logo",
"oidcOPMetaDataOptionsSortNumber":"Order",
"oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout", "oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout",
"oidcRPMetaDataOptionsLogoutSessionRequired":"Session required", "oidcRPMetaDataOptionsLogoutSessionRequired":"Session required",
"oidcRPMetaDataOptionsLogoutType":"Type", "oidcRPMetaDataOptionsLogoutType":"Type",

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"Display name", "oidcOPMetaDataOptionsDisplayName":"Display name",
"oidcOPMetaDataOptionsDisplayParams":"Display", "oidcOPMetaDataOptionsDisplayParams":"Display",
"oidcOPMetaDataOptionsIcon":"Logo", "oidcOPMetaDataOptionsIcon":"Logo",
"oidcOPMetaDataOptionsSortNumber":"Order",
"oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout", "oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout",
"oidcRPMetaDataOptionsLogoutSessionRequired":"Session required", "oidcRPMetaDataOptionsLogoutSessionRequired":"Session required",
"oidcRPMetaDataOptionsLogoutType":"Type", "oidcRPMetaDataOptionsLogoutType":"Type",

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"Nom d'affichage", "oidcOPMetaDataOptionsDisplayName":"Nom d'affichage",
"oidcOPMetaDataOptionsDisplayParams":"Affichage", "oidcOPMetaDataOptionsDisplayParams":"Affichage",
"oidcOPMetaDataOptionsIcon":"Logo", "oidcOPMetaDataOptionsIcon":"Logo",
"oidcOPMetaDataOptionsSortNumber":"Ordre",
"oidcOPMetaDataOptionsJWKSTimeout":"Durée de vie des données JWKS", "oidcOPMetaDataOptionsJWKSTimeout":"Durée de vie des données JWKS",
"oidcRPMetaDataOptionsLogoutSessionRequired":"Session requise", "oidcRPMetaDataOptionsLogoutSessionRequired":"Session requise",
"oidcRPMetaDataOptionsLogoutType":"Type", "oidcRPMetaDataOptionsLogoutType":"Type",

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"Visualizza nome", "oidcOPMetaDataOptionsDisplayName":"Visualizza nome",
"oidcOPMetaDataOptionsDisplayParams":"Visualizza", "oidcOPMetaDataOptionsDisplayParams":"Visualizza",
"oidcOPMetaDataOptionsIcon":"Logo", "oidcOPMetaDataOptionsIcon":"Logo",
"oidcOPMetaDataOptionsSortNumber":"Order",
"oidcOPMetaDataOptionsJWKSTimeout":"Timeout dei dati di JWKS", "oidcOPMetaDataOptionsJWKSTimeout":"Timeout dei dati di JWKS",
"oidcRPMetaDataOptionsLogoutSessionRequired":"Sessione necessaria", "oidcRPMetaDataOptionsLogoutSessionRequired":"Sessione necessaria",
"oidcRPMetaDataOptionsLogoutType":"Tipo", "oidcRPMetaDataOptionsLogoutType":"Tipo",

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"Tên hiển thị", "oidcOPMetaDataOptionsDisplayName":"Tên hiển thị",
"oidcOPMetaDataOptionsDisplayParams":"Hiển thị", "oidcOPMetaDataOptionsDisplayParams":"Hiển thị",
"oidcOPMetaDataOptionsIcon":"Logo", "oidcOPMetaDataOptionsIcon":"Logo",
"oidcOPMetaDataOptionsSortNumber":"Order",
"oidcOPMetaDataOptionsJWKSTimeout":"Thời gian chờ của dữ liệu JWKS", "oidcOPMetaDataOptionsJWKSTimeout":"Thời gian chờ của dữ liệu JWKS",
"oidcRPMetaDataOptionsLogoutSessionRequired":"Phiên yêu cầu", "oidcRPMetaDataOptionsLogoutSessionRequired":"Phiên yêu cầu",
"oidcRPMetaDataOptionsLogoutType":"Loại", "oidcRPMetaDataOptionsLogoutType":"Loại",

View File

@ -499,6 +499,7 @@
"oidcOPMetaDataOptionsDisplayName":"Display name", "oidcOPMetaDataOptionsDisplayName":"Display name",
"oidcOPMetaDataOptionsDisplayParams":"Display", "oidcOPMetaDataOptionsDisplayParams":"Display",
"oidcOPMetaDataOptionsIcon":"Logo", "oidcOPMetaDataOptionsIcon":"Logo",
"oidcOPMetaDataOptionsSortNumber":"Order",
"oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout", "oidcOPMetaDataOptionsJWKSTimeout":"JWKS data timeout",
"oidcRPMetaDataOptionsLogoutSessionRequired":"Session required", "oidcRPMetaDataOptionsLogoutSessionRequired":"Session required",
"oidcRPMetaDataOptionsLogoutType":"Type", "oidcRPMetaDataOptionsLogoutType":"Type",

View File

@ -45,6 +45,8 @@ sub init {
->{oidcOPMetaDataOptionsDisplayName}; ->{oidcOPMetaDataOptionsDisplayName};
my $icon = $self->conf->{oidcOPMetaDataOptions}->{$_} my $icon = $self->conf->{oidcOPMetaDataOptions}->{$_}
->{oidcOPMetaDataOptionsIcon}; ->{oidcOPMetaDataOptionsIcon};
my $order = $self->conf->{oidcOPMetaDataOptions}->{$_}
->{oidcOPMetaDataOptionsSortNumber};
my $img_src; my $img_src;
if ($icon) { if ($icon) {
@ -60,6 +62,7 @@ sub init {
name => $name, name => $name,
icon => $img_src, icon => $img_src,
class => "openidconnect", class => "openidconnect",
order => $order
}; };
} }
$self->addRouteFromConf( $self->addRouteFromConf(
@ -73,7 +76,7 @@ sub init {
oidcServiceMetaDataBackChannelURI => 'backLogout', oidcServiceMetaDataBackChannelURI => 'backLogout',
); );
@list = @list =
sort { $a->{name} cmp $b->{name} or $a->{val} cmp $b->{val} } @list; sort { $a->{order} <=> $b->{order} or $a->{name} cmp $b->{name} or $a->{val} cmp $b->{val} } @list;
$self->opList( [@list] ); $self->opList( [@list] );
return 1; return 1;
} }