mirror of
https://github.com/netzbegruenung/user_saml.git
synced 2024-05-11 05:06:06 +02:00
always read the right idp config
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
parent
39b3d52746
commit
e378f22d10
|
@ -161,6 +161,7 @@ class SAMLController extends Controller {
|
||||||
$ssoUrl = $auth->login(null, [], false, false, true);
|
$ssoUrl = $auth->login(null, [], false, false, true);
|
||||||
$this->session->set('user_saml.AuthNRequestID', $auth->getLastRequestID());
|
$this->session->set('user_saml.AuthNRequestID', $auth->getLastRequestID());
|
||||||
$this->session->set('user_saml.OriginalUrl', $this->request->getParam('originalUrl', ''));
|
$this->session->set('user_saml.OriginalUrl', $this->request->getParam('originalUrl', ''));
|
||||||
|
$this->session->set('user_saml.Idp', $idp);
|
||||||
break;
|
break;
|
||||||
case 'environment-variable':
|
case 'environment-variable':
|
||||||
$ssoUrl = $this->urlGenerator->getAbsoluteURL('/');
|
$ssoUrl = $this->urlGenerator->getAbsoluteURL('/');
|
||||||
|
@ -191,9 +192,12 @@ class SAMLController extends Controller {
|
||||||
/**
|
/**
|
||||||
* @PublicPage
|
* @PublicPage
|
||||||
* @NoCSRFRequired
|
* @NoCSRFRequired
|
||||||
|
* @param int $idp
|
||||||
|
* @return Http\DataDownloadResponse
|
||||||
|
* @throws \OneLogin_Saml2_Error
|
||||||
*/
|
*/
|
||||||
public function getMetadata() {
|
public function getMetadata($idp) {
|
||||||
$settings = new \OneLogin_Saml2_Settings($this->SAMLSettings->getOneLoginSettingsArray());
|
$settings = new \OneLogin_Saml2_Settings($this->SAMLSettings->getOneLoginSettingsArray($idp));
|
||||||
$metadata = $settings->getSPMetadata();
|
$metadata = $settings->getSPMetadata();
|
||||||
$errors = $settings->validateMetadata($metadata);
|
$errors = $settings->validateMetadata($metadata);
|
||||||
if (empty($errors)) {
|
if (empty($errors)) {
|
||||||
|
@ -217,11 +221,12 @@ class SAMLController extends Controller {
|
||||||
*/
|
*/
|
||||||
public function assertionConsumerService() {
|
public function assertionConsumerService() {
|
||||||
$AuthNRequestID = $this->session->get('user_saml.AuthNRequestID');
|
$AuthNRequestID = $this->session->get('user_saml.AuthNRequestID');
|
||||||
if(is_null($AuthNRequestID) || $AuthNRequestID === '') {
|
$idp = $this->session->get('user_saml.Idp');
|
||||||
|
if(is_null($AuthNRequestID) || $AuthNRequestID === '' || is_null($idp)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$auth = new \OneLogin_Saml2_Auth($this->SAMLSettings->getOneLoginSettingsArray());
|
$auth = new \OneLogin_Saml2_Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
|
||||||
$auth->processResponse($AuthNRequestID);
|
$auth->processResponse($AuthNRequestID);
|
||||||
|
|
||||||
$errors = $auth->getErrors();
|
$errors = $auth->getErrors();
|
||||||
|
@ -285,7 +290,8 @@ class SAMLController extends Controller {
|
||||||
*/
|
*/
|
||||||
public function singleLogoutService() {
|
public function singleLogoutService() {
|
||||||
if($this->request->passesCSRFCheck()) {
|
if($this->request->passesCSRFCheck()) {
|
||||||
$auth = new \OneLogin_Saml2_Auth($this->SAMLSettings->getOneLoginSettingsArray());
|
$idp = $this->session->get('user_saml.Idp');
|
||||||
|
$auth = new \OneLogin_Saml2_Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
|
||||||
$returnTo = null;
|
$returnTo = null;
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$nameId = $this->session->get('user_saml.samlNameId');
|
$nameId = $this->session->get('user_saml.samlNameId');
|
||||||
|
|
Loading…
Reference in a new issue