diff --git a/modules/multiauth/docs/multiauth.txt b/modules/multiauth/docs/multiauth.txt index 93bd55e7eebc8ac24a6d988d9bcfa3d12627ab10..4c0f52be251beedf8c5f90ede310930e2581d83b 100644 --- a/modules/multiauth/docs/multiauth.txt +++ b/modules/multiauth/docs/multiauth.txt @@ -64,4 +64,11 @@ For example: htttps://example.com/service/?source=saml will take you directly to the SAML authentication source, instead -of hitting the multiauth select page. +of hitting the multiauth select page, but this works only if you +don't have redirections during the authentification process. + +You can also use the multiauth:preselect parameter to the login call : + $as = new SimpleSAML_Auth_Simple('my-multiauth-authsource'); + $as->login(array( + 'multiauth:preselect' => 'default-sp', + )); diff --git a/modules/multiauth/www/selectsource.php b/modules/multiauth/www/selectsource.php index 41f0c73b3cf02c61b77534cb6065c29c2d14e773..2602f6f16fbe0a328c9719f2840dbaf845446ab0 100644 --- a/modules/multiauth/www/selectsource.php +++ b/modules/multiauth/www/selectsource.php @@ -22,6 +22,9 @@ $state = SimpleSAML_Auth_State::loadState($authStateId, sspmod_multiauth_Auth_So if (array_key_exists('source', $_REQUEST)) { $source = $_REQUEST['source']; sspmod_multiauth_Auth_Source_MultiAuth::delegateAuthentication($source, $state); +} elseif (array_key_exists('multiauth:preselect', $state)) { + $source = $state['multiauth:preselect']; + sspmod_multiauth_Auth_Source_MultiAuth::delegateAuthentication($source, $state); } $globalConfig = SimpleSAML_Configuration::getInstance();