@@ -299,7 +299,7 @@ public function processSLO($keepLocalSession = false, $requestId = null, $retrie
299299 }
300300 }
301301 } else if (isset ($ _GET ['SAMLRequest ' ])) {
302- $ logoutRequest = new LogoutRequest ($ this ->_settings , $ _GET ['SAMLRequest ' ]);
302+ $ logoutRequest = $ this -> buildLogoutRequest ($ this ->_settings , $ _GET ['SAMLRequest ' ]);
303303 $ this ->_lastRequest = $ logoutRequest ->getXML ();
304304 if (!$ logoutRequest ->isValid ($ retrieveParametersFromServer )) {
305305 $ this ->_errors [] = 'invalid_logout_request ' ;
@@ -594,7 +594,7 @@ public function logout($returnTo = null, array $parameters = array(), $nameId =
594594 $ nameIdFormat = $ this ->_nameidFormat ;
595595 }
596596
597- $ logoutRequest = new LogoutRequest ($ this ->_settings , null , $ nameId , $ sessionIndex , $ nameIdFormat , $ nameIdNameQualifier , $ nameIdSPNameQualifier );
597+ $ logoutRequest = $ this -> buildLogoutRequest ($ this ->_settings , null , $ nameId , $ sessionIndex , $ nameIdFormat , $ nameIdNameQualifier , $ nameIdSPNameQualifier );
598598
599599 $ this ->_lastRequest = $ logoutRequest ->getXML ();
600600 $ this ->_lastRequestID = $ logoutRequest ->id ;
@@ -675,6 +675,22 @@ public function buildAuthnRequest($settings, $forceAuthn, $isPassive, $setNameId
675675 return new AuthnRequest ($ settings , $ forceAuthn , $ isPassive , $ setNameIdPolicy , $ nameIdValueReq );
676676 }
677677
678+ /**
679+ * Creates an LogoutRequest
680+ *
681+ * @param Settings $settings Settings
682+ * @param string|null $request A UUEncoded Logout Request.
683+ * @param string|null $nameId The NameID that will be set in the LogoutRequest.
684+ * @param string|null $sessionIndex The SessionIndex (taken from the SAML Response in the SSO process).
685+ * @param string|null $nameIdFormat The NameID Format will be set in the LogoutRequest.
686+ * @param string|null $nameIdNameQualifier The NameID NameQualifier will be set in the LogoutRequest.
687+ * @param string|null $nameIdSPNameQualifier The NameID SP NameQualifier will be set in the LogoutRequest.
688+ */
689+ public function buildLogoutRequest (\OneLogin \Saml2 \Settings $ settings , $ request = null , $ nameId = null , $ sessionIndex = null , $ nameIdFormat = null , $ nameIdNameQualifier = null , $ nameIdSPNameQualifier = null )
690+ {
691+ return new LogoutRequest ($ settings , $ request , $ nameId , $ sessionIndex , $ nameIdFormat , $ nameIdNameQualifier , $ nameIdSPNameQualifier );
692+ }
693+
678694 /**
679695 * Generates the Signature for a SAML Request
680696 *
0 commit comments