Skip to content

Commit 3424592

Browse files
committed
Support Passive mode and don't raise error when passive authentication failed
1 parent 0b869d3 commit 3424592

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

onelogin-saml-sso/php/functions.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,25 @@ function saml_acs() {
244244

245245
$errors = $auth->getErrors();
246246
if (!empty($errors)) {
247+
// Don't raise an error on passive mode
248+
$errorReason = $auth->getLastErrorReason();
249+
if (strpos($errorReason, 'Responder') != false && strpos($errorReason, 'NoPassive') !== false ) {
250+
$relayState = esc_url_raw( $_REQUEST['RelayState'], ['https','http']);
251+
252+
if (empty($relayState)) {
253+
wp_redirect(home_url());
254+
} else {
255+
if (strpos($relayState, 'redirect_to') !== false) {
256+
$query = wp_parse_url($relayState, PHP_URL_QUERY);
257+
parse_str($query, $parameters);
258+
redirect_to_relaystate_if_trusted(urldecode($parameters['redirect_to']));
259+
} else {
260+
redirect_to_relaystate_if_trusted($relayState);
261+
}
262+
exit();
263+
}
264+
}
265+
247266
echo '<br>'.__("There was at least one error processing the SAML Response").': ';
248267
foreach($errors as $error) {
249268
echo esc_html($error).'<br>';

0 commit comments

Comments
 (0)