Do not set SAML relaystate if there are no data to store (Lemonldap-524)
This commit is contained in:
parent
495401756c
commit
29a97450d8
|
@ -792,13 +792,10 @@ sub createAuthnRequest {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set RelayState
|
# Set RelayState
|
||||||
my $infos;
|
if (my $relaystate = $self->storeRelayState(qw /urldc checkLogins/)) {
|
||||||
foreach (qw /urldc checkLogins/) {
|
$login->msg_relayState($relaystate);
|
||||||
$infos->{$_} = $self->{$_} if $self->{$_};
|
$self->lmLog( "Set $relaystate in RelayState", 'debug' );
|
||||||
}
|
}
|
||||||
my $relaystate = $self->storeRelayState($infos);
|
|
||||||
$login->msg_relayState($relaystate);
|
|
||||||
$self->lmLog( "Set $relaystate in RelayState", 'debug' );
|
|
||||||
|
|
||||||
# Customize request
|
# Customize request
|
||||||
my $request = $login->request();
|
my $request = $login->request();
|
||||||
|
@ -1163,7 +1160,14 @@ sub acceptSSO {
|
||||||
# corresponding session_id
|
# corresponding session_id
|
||||||
# @param infos HASH reference of information
|
# @param infos HASH reference of information
|
||||||
sub storeRelayState {
|
sub storeRelayState {
|
||||||
my ( $self, $infos ) = splice @_;
|
my ( $self, @data ) = splice @_;
|
||||||
|
|
||||||
|
# check if there are data to store
|
||||||
|
my $infos;
|
||||||
|
foreach (@data) {
|
||||||
|
$infos->{$_} = $self->{$_} if $self->{$_};
|
||||||
|
}
|
||||||
|
return unless ($infos);
|
||||||
|
|
||||||
# Create relaystate session
|
# Create relaystate session
|
||||||
my $samlSessionInfo = $self->getSamlSession();
|
my $samlSessionInfo = $self->getSamlSession();
|
||||||
|
@ -1365,13 +1369,10 @@ sub createLogoutRequest {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set RelayState
|
# Set RelayState
|
||||||
my $infos;
|
if (my $relaystate = $self->storeRelayState(qw /urldc/)) {
|
||||||
foreach (qw /urldc checkLogins/) {
|
$logout->msg_relayState($relaystate);
|
||||||
$infos->{$_} = $self->{$_} if $self->{$_};
|
$self->lmLog( "Set $relaystate in RelayState", 'debug' );
|
||||||
}
|
}
|
||||||
my $relaystate = $self->storeRelayState($infos);
|
|
||||||
$logout->msg_relayState($relaystate);
|
|
||||||
$self->lmLog( "Set $relaystate in RelayState", 'debug' );
|
|
||||||
|
|
||||||
# Signature
|
# Signature
|
||||||
if ( $signSLOMessage == 0 ) {
|
if ( $signSLOMessage == 0 ) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user