From 865551989b088235f9724ece6c40ca22f8e9f7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Oudot?= Date: Wed, 1 Apr 2015 12:53:18 +0000 Subject: [PATCH] Use display (#183) --- .../lib/Lemonldap/NG/Common/Conf/SubAttributes.pm | 7 +++++++ lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm | 6 ++++-- .../lib/Lemonldap/NG/Portal/_OpenIDConnect.pm | 8 ++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/SubAttributes.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/SubAttributes.pm index 9a9b4fcb8..157a2ded0 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/SubAttributes.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/SubAttributes.pm @@ -65,6 +65,13 @@ has 'oidcOPMetaDataOptionsConfigurationURI' => ( documentation => "OIDC OP configuration endpoint", ); +has 'oidcOPMetaDataOptionsDisplay' => ( + is => 'rw', + isa => 'Str|Undef', + default => undef, + documentation => "OIDC OP display", +); + has 'oidcOPMetaDataOptionsDisplayName' => ( is => 'rw', isa => 'Str', diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm index 02f97cfff..69fec9ef3 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm @@ -287,10 +287,12 @@ sub cstruct { }, oidcOPMetaDataOptionsProtocol => { _nodes => [ - qw(oidcOPMetaDataOptionsScope oidcOPMetaDataOptionsTokenEndpointAuthMethod oidcOPMetaDataOptionsCheckJWTSignature) + qw(oidcOPMetaDataOptionsScope oidcOPMetaDataOptionsDisplay oidcOPMetaDataOptionsTokenEndpointAuthMethod oidcOPMetaDataOptionsCheckJWTSignature) ], oidcOPMetaDataOptionsScope => "text:/oidcOPMetaDataOptions/$k2/oidcOPMetaDataOptionsScope", + oidcOPMetaDataOptionsDisplay => +"text:/oidcOPMetaDataOptions/$k2/oidcOPMetaDataOptionsDisplay", oidcOPMetaDataOptionsTokenEndpointAuthMethod => "text:/oidcOPMetaDataOptions/$k2/oidcOPMetaDataOptionsTokenEndpointAuthMethod", oidcOPMetaDataOptionsCheckJWTSignature => @@ -317,7 +319,7 @@ sub cstruct { oidcRPMetaDataNode => { $k2 => { _nodes => - [ qw(oidcRPMetaDataExportedVars oidcRPMetaDataOptions) ], + [qw(oidcRPMetaDataExportedVars oidcRPMetaDataOptions)], oidcRPMetaDataExportedVars => { _nodes => ["hash:/oidcRPMetaDataExportedVars/$k2:vars:btext"], diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_OpenIDConnect.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_OpenIDConnect.pm index f185b6058..032ce4c97 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_OpenIDConnect.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_OpenIDConnect.pm @@ -233,6 +233,8 @@ sub buildAuthorizationCodeAuthnRequest { my $nonceSession = $self->getOpenIDConnectSession(); $nonceSession->update( { '_utime' => time } ); my $nonce = $nonceSession->id; + my $display = + $self->{oidcOPMetaDataOptions}->{$op}->{oidcOPMetaDataOptionsDisplay}; $client_id = uri_escape($client_id); $scope = uri_escape($scope); @@ -240,6 +242,7 @@ sub buildAuthorizationCodeAuthnRequest { $redirect_uri = uri_escape($redirect_uri); $state = uri_escape($state) if defined $state; $nonce = uri_escape($nonce); + $display = uri_escape($display) if defined $display; my $authn_uri = $authorize_uri; $authn_uri .= ( $authorize_uri =~ /\?/ ? '&' : '?' ); @@ -247,8 +250,9 @@ sub buildAuthorizationCodeAuthnRequest { $authn_uri .= "&client_id=$client_id"; $authn_uri .= "&scope=$scope"; $authn_uri .= "&redirect_uri=$redirect_uri"; - $authn_uri .= "&state=$state" if defined $state; - $authn_uri .= "&nonce=$nonce" if defined $nonce; + $authn_uri .= "&state=$state" if defined $state; + $authn_uri .= "&nonce=$nonce" if defined $nonce; + $authn_uri .= "&display=$display" if defined $display; $self->lmLog( "OpenIDConnect Authorization Code Flow Authn Request: $authn_uri",