@@ -279,7 +279,7 @@ public function processSLO($keepLocalSession = false, $requestId = null, $retrie
279279 $ this ->_errors = array ();
280280 $ this ->_lastError = $ this ->_lastErrorException = null ;
281281 if (isset ($ _GET ['SAMLResponse ' ])) {
282- $ logoutResponse = new LogoutResponse ($ this ->_settings , $ _GET ['SAMLResponse ' ]);
282+ $ logoutResponse = $ this -> buildLogoutResponse ($ this ->_settings , $ _GET ['SAMLResponse ' ]);
283283 $ this ->_lastResponse = $ logoutResponse ->getXML ();
284284 if (!$ logoutResponse ->isValid ($ requestId , $ retrieveParametersFromServer )) {
285285 $ this ->_errors [] = 'invalid_logout_response ' ;
@@ -315,7 +315,7 @@ public function processSLO($keepLocalSession = false, $requestId = null, $retrie
315315 }
316316 $ inResponseTo = $ logoutRequest ->id ;
317317 $ this ->_lastMessageId = $ logoutRequest ->id ;
318- $ responseBuilder = new LogoutResponse ($ this ->_settings );
318+ $ responseBuilder = $ this -> buildLogoutResponse ($ this ->_settings );
319319 $ responseBuilder ->build ($ inResponseTo );
320320 $ this ->_lastResponse = $ responseBuilder ->getXML ();
321321
@@ -670,7 +670,7 @@ public function getLastRequestID()
670670 *
671671 * @return AuthnRequest The AuthnRequest object
672672 */
673- public function buildAuthnRequest ($ settings , $ forceAuthn , $ isPassive , $ setNameIdPolicy , $ nameIdValueReq = null )
673+ public function buildAuthnRequest (Settings $ settings , $ forceAuthn , $ isPassive , $ setNameIdPolicy , $ nameIdValueReq = null )
674674 {
675675 return new AuthnRequest ($ settings , $ forceAuthn , $ isPassive , $ setNameIdPolicy , $ nameIdValueReq );
676676 }
@@ -686,11 +686,26 @@ public function buildAuthnRequest($settings, $forceAuthn, $isPassive, $setNameId
686686 * @param string|null $nameIdNameQualifier The NameID NameQualifier will be set in the LogoutRequest.
687687 * @param string|null $nameIdSPNameQualifier The NameID SP NameQualifier will be set in the LogoutRequest.
688688 */
689- public function buildLogoutRequest (\ OneLogin \ Saml2 \ Settings $ settings , $ request = null , $ nameId = null , $ sessionIndex = null , $ nameIdFormat = null , $ nameIdNameQualifier = null , $ nameIdSPNameQualifier = null )
689+ public function buildLogoutRequest (Settings $ settings , $ request = null , $ nameId = null , $ sessionIndex = null , $ nameIdFormat = null , $ nameIdNameQualifier = null , $ nameIdSPNameQualifier = null )
690690 {
691691 return new LogoutRequest ($ settings , $ request , $ nameId , $ sessionIndex , $ nameIdFormat , $ nameIdNameQualifier , $ nameIdSPNameQualifier );
692692 }
693693
694+ /**
695+ * Constructs a Logout Response object (Initialize params from settings and if provided
696+ * load the Logout Response.
697+ *
698+ * @param Settings $settings Settings.
699+ * @param string|null $response An UUEncoded SAML Logout response from the IdP.
700+ *
701+ * @throws Error
702+ * @throws Exception
703+ */
704+ public function buildLogoutResponse (Settings $ settings , $ response = null )
705+ {
706+ return new LogoutResponse ($ settings , $ response );
707+ }
708+
694709 /**
695710 * Generates the Signature for a SAML Request
696711 *
0 commit comments