Default value for samlIDPMetaDataOptionsSSOBinding should be undef
When we add an IDP to LL::NG, the default value for samlIDPMetaDataOptionsSSOBinding is '', and then we fail in AuthSAML.pm code:
# IDP HTTP method
my $method =
$self->{samlIDPMetaDataOptions}->{$idpConfKey}
->{samlIDPMetaDataOptionsSSOBinding};
$method = $self->getHttpMethod($method) if $method;
# If no method defined, get first HTTP method
unless ( defined $method ) {
my $protocolType = Lasso::Constants::MD_PROTOCOL_TYPE_SINGLE_SIGN_ON;
$method = $self->getFirstHttpMethod( $server, $idp, $protocolType );
}
# Failback to HTTP-REDIRECT
unless ( defined $method and $method != -1 ) {
$self->lmLog( "No method found with IDP $idpConfKey for SSO profile",
'debug' );
$method = $self->getHttpMethod("redirect");
}
$self->lmLog(
"Use method "
. $self->getHttpMethodString($method)
. " with IDP $idpConfKey for SSO profile",
'debug'
);
{code}
We can see in logs:
{code}
[Tue Jun 21 11:59:33.621436 2016] [perl:debug] [pid 8131] CGI.pm(115): Lemonldap::NG::Portal::SharedConf: Use method UNDEFINED with IDP simplesamlphp for SSO profile
So, either default value is 'undef', either we consider '' as undef in our code.
We should also set select values for samlIDPMetaDataOptionsSLOBinding, which is just a text input in Manager and should be a select, like samlIDPMetaDataOptionsSSOBinding.