getNameId() public static method

Gets the NameID of the Logout Request.
public static getNameId ( string | DOMDocument $request, string | null $key = null ) : string
$request string | DOMDocument Logout Request Message
$key string | null The SP key
return string Name ID Value
示例#1
0
 /**
  * Tests the logout method of the OneLogin_Saml2_Auth class
  * Case nameID loaded after process SAML Response
  *
  * @covers OneLogin_Saml2_Auth::logout
  * @runInSeparateProcess
  */
 public function testLogoutNameID()
 {
     $message = file_get_contents(TEST_ROOT . '/data/responses/valid_response.xml.base64');
     $_POST['SAMLResponse'] = $message;
     $this->_auth->processResponse();
     $nameIdFromResponse = $this->_auth->getNameId();
     try {
         $nameId = 'my_name_id';
         $this->_auth->logout();
         // Do not ever get here
         $this->assertFalse(true);
     } catch (Exception $e) {
         $this->assertContains('Cannot modify header information', $e->getMessage());
         $trace = $e->getTrace();
         $targetUrl = getUrlFromRedirect($trace);
         $parsedQuery = getParamsFromUrl($targetUrl);
         $sloUrl = $this->_settingsInfo['idp']['singleLogoutService']['url'];
         $this->assertContains($sloUrl, $targetUrl);
         $this->assertArrayHasKey('SAMLRequest', $parsedQuery);
         $logoutRequest = gzinflate(base64_decode($parsedQuery['SAMLRequest']));
         $nameIdFromRequest = OneLogin_Saml2_LogoutRequest::getNameId($logoutRequest);
         $this->assertEquals($nameIdFromResponse, $nameIdFromRequest);
     }
 }
示例#2
0
 /**
  * Tests the getNameIdmethod of the OneLogin_Saml2_LogoutRequest
  *
  * @covers OneLogin_Saml2_LogoutRequest::getNameId
  */
 public function testGetNameId()
 {
     $request = file_get_contents(TEST_ROOT . '/data/logout_requests/logout_request.xml');
     $nameId = OneLogin_Saml2_LogoutRequest::getNameId($request);
     $this->assertEquals('ONELOGIN_1e442c129e1f822c8096086a1103c5ee2c7cae1c', $nameId);
     $request2 = file_get_contents(TEST_ROOT . '/data/logout_requests/logout_request_encrypted_nameid.xml');
     try {
         $nameId2 = OneLogin_Saml2_LogoutRequest::getNameId($request2);
         $this->assertFalse(true);
     } catch (Exception $e) {
         $this->assertContains('Key is required in order to decrypt the NameID', $e->getMessage());
     }
     $key = $this->_settings->getSPkey();
     $nameId3 = OneLogin_Saml2_LogoutRequest::getNameId($request2, $key);
     $this->assertEquals('ONELOGIN_9c86c4542ab9d6fce07f2f7fd335287b9b3cdf69', $nameId3);
 }