Skip to content

Commit 4bdfdd6

Browse files
committed
Remove $_GET dep
1 parent 6a8ad8f commit 4bdfdd6

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

lib/Saml2/Auth.php

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,13 @@ public function processResponse($requestId = null, $payload =[])
249249
*
250250
* @throws OneLogin_Saml2_Error
251251
*/
252-
public function processSLO($keepLocalSession = false, $requestId = null, $retrieveParametersFromServer = false, $cbDeleteSession = null, $stay = false)
252+
public function processSLO($keepLocalSession = false, $requestId = null, $retrieveParametersFromServer = false, $cbDeleteSession = null, $stay = false, $payload = null)
253253
{
254254
$this->_errors = array();
255255
$this->_errorReason = null;
256-
if (isset($_GET['SAMLResponse'])) {
257-
$logoutResponse = new OneLogin_Saml2_LogoutResponse($this->_settings, $_GET['SAMLResponse']);
256+
$payload = $payload ?: $_GET;
257+
if (isset($payload['SAMLResponse'])) {
258+
$logoutResponse = new OneLogin_Saml2_LogoutResponse($this->_settings, $payload['SAMLResponse']);
258259
$this->_lastResponse = $logoutResponse->getXML();
259260
if (!$logoutResponse->isValid($requestId, $retrieveParametersFromServer)) {
260261
$this->_errors[] = 'invalid_logout_response';
@@ -271,8 +272,8 @@ public function processSLO($keepLocalSession = false, $requestId = null, $retrie
271272
}
272273
}
273274
}
274-
} else if (isset($_GET['SAMLRequest'])) {
275-
$logoutRequest = new OneLogin_Saml2_LogoutRequest($this->_settings, $_GET['SAMLRequest']);
275+
} else if (isset($payload['SAMLRequest'])) {
276+
$logoutRequest = new OneLogin_Saml2_LogoutRequest($this->_settings, $payload['SAMLRequest']);
276277
$this->_lastRequest = $logoutRequest->getXML();
277278
if (!$logoutRequest->isValid($retrieveParametersFromServer)) {
278279
$this->_errors[] = 'invalid_logout_request';
@@ -294,8 +295,8 @@ public function processSLO($keepLocalSession = false, $requestId = null, $retrie
294295
$logoutResponse = $responseBuilder->getResponse();
295296

296297
$parameters = array('SAMLResponse' => $logoutResponse);
297-
if (isset($_GET['RelayState'])) {
298-
$parameters['RelayState'] = $_GET['RelayState'];
298+
if (isset($payload['RelayState'])) {
299+
$parameters['RelayState'] = $payload['RelayState'];
299300
}
300301

301302
$security = $this->_settings->getSecurityData();
@@ -305,7 +306,7 @@ public function processSLO($keepLocalSession = false, $requestId = null, $retrie
305306
$parameters['Signature'] = $signature;
306307
}
307308

308-
return $this->redirectTo($this->getSLOResponseUrl(), $parameters, $stay);
309+
return $this->redirectTo($this->getSLOResponseUrl(), $parameters, $stay, $payload);
309310
}
310311
} else {
311312
$this->_errors[] = 'invalid_binding';
@@ -328,13 +329,14 @@ public function processSLO($keepLocalSession = false, $requestId = null, $retrie
328329
*
329330
* @throws OneLogin_Saml2_Error
330331
*/
331-
public function redirectTo($url = '', $parameters = array(), $stay = false)
332+
public function redirectTo($url = '', $parameters = array(), $stay = false, $payload = null)
332333
{
333334
assert('is_string($url)');
334335
assert('is_array($parameters)');
335336

336-
if (empty($url) && isset($_REQUEST['RelayState'])) {
337-
$url = $_REQUEST['RelayState'];
337+
$payload = $payload ?: $_REQUEST;
338+
if (empty($url) && isset($payload['RelayState'])) {
339+
$url = $payload['RelayState'];
338340
}
339341

340342
return OneLogin_Saml2_Utils::redirect($url, $parameters, $stay);

0 commit comments

Comments
 (0)