@@ -493,7 +493,7 @@ |
||
| 493 | 493 | * namespaces needed to parse the XML. |
| 494 | 494 | */ |
| 495 | 495 | $xml = '<root xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" '. |
| 496 | - 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' . |
|
| 496 | + 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' . |
|
| 497 | 497 | $decrypted . |
| 498 | 498 | '</root>'; |
| 499 | 499 | |
@@ -246,7 +246,7 @@ discard block |
||
| 246 | 246 | } |
| 247 | 247 | |
| 248 | 248 | foreach ($namespaces as $prefix => $uri) { |
| 249 | - $newElement->setAttributeNS($uri, $prefix . ':__ns_workaround__', 'tmp'); |
|
| 249 | + $newElement->setAttributeNS($uri, $prefix.':__ns_workaround__', 'tmp'); |
|
| 250 | 250 | $newElement->removeAttributeNS($uri, '__ns_workaround__'); |
| 251 | 251 | } |
| 252 | 252 | |
@@ -279,7 +279,7 @@ discard block |
||
| 279 | 279 | case 'true': |
| 280 | 280 | return true; |
| 281 | 281 | default: |
| 282 | - throw new \Exception('Invalid value of boolean attribute ' . var_export($attributeName, true) . ': ' . var_export($value, true)); |
|
| 282 | + throw new \Exception('Invalid value of boolean attribute '.var_export($attributeName, true).': '.var_export($value, true)); |
|
| 283 | 283 | } |
| 284 | 284 | } |
| 285 | 285 | |
@@ -423,7 +423,7 @@ discard block |
||
| 423 | 423 | $symKeyInfoAlgo = $symmetricKeyInfo->getAlgorithm(); |
| 424 | 424 | |
| 425 | 425 | if (in_array($symKeyInfoAlgo, $blacklist, true)) { |
| 426 | - throw new \Exception('Algorithm disabled: ' . var_export($symKeyInfoAlgo, true)); |
|
| 426 | + throw new \Exception('Algorithm disabled: '.var_export($symKeyInfoAlgo, true)); |
|
| 427 | 427 | } |
| 428 | 428 | |
| 429 | 429 | if ($symKeyInfoAlgo === XMLSecurityKey::RSA_OAEP_MGF1P && $inputKeyAlgo === XMLSecurityKey::RSA_1_5) { |
@@ -439,9 +439,9 @@ discard block |
||
| 439 | 439 | /* Make sure that the input key format is the same as the one used to encrypt the key. */ |
| 440 | 440 | if ($inputKeyAlgo !== $symKeyInfoAlgo) { |
| 441 | 441 | throw new \Exception( |
| 442 | - 'Algorithm mismatch between input key and key used to encrypt ' . |
|
| 443 | - ' the symmetric key for the message. Key was: ' . |
|
| 444 | - var_export($inputKeyAlgo, true) . '; message was: ' . |
|
| 442 | + 'Algorithm mismatch between input key and key used to encrypt '. |
|
| 443 | + ' the symmetric key for the message. Key was: '. |
|
| 444 | + var_export($inputKeyAlgo, true).'; message was: '. |
|
| 445 | 445 | var_export($symKeyInfoAlgo, true) |
| 446 | 446 | ); |
| 447 | 447 | } |
@@ -455,20 +455,20 @@ discard block |
||
| 455 | 455 | /* To protect against "key oracle" attacks, we need to be able to create a |
| 456 | 456 | * symmetric key, and for that we need to know the key size. |
| 457 | 457 | */ |
| 458 | - throw new \Exception('Unknown key size for encryption algorithm: ' . var_export($symmetricKey->type, true)); |
|
| 458 | + throw new \Exception('Unknown key size for encryption algorithm: '.var_export($symmetricKey->type, true)); |
|
| 459 | 459 | } |
| 460 | 460 | |
| 461 | 461 | try { |
| 462 | 462 | $key = $encKey->decryptKey($symmetricKeyInfo); |
| 463 | 463 | if (strlen($key) != $keySize) { |
| 464 | 464 | throw new \Exception( |
| 465 | - 'Unexpected key size (' . strlen($key) * 8 . 'bits) for encryption algorithm: ' . |
|
| 465 | + 'Unexpected key size ('.strlen($key)*8.'bits) for encryption algorithm: '. |
|
| 466 | 466 | var_export($symmetricKey->type, true) |
| 467 | 467 | ); |
| 468 | 468 | } |
| 469 | 469 | } catch (\Exception $e) { |
| 470 | 470 | /* We failed to decrypt this key. Log it, and substitute a "random" key. */ |
| 471 | - Utils::getContainer()->getLogger()->error('Failed to decrypt symmetric key: ' . $e->getMessage()); |
|
| 471 | + Utils::getContainer()->getLogger()->error('Failed to decrypt symmetric key: '.$e->getMessage()); |
|
| 472 | 472 | /* Create a replacement key, so that it looks like we fail in the same way as if the key was correctly padded. */ |
| 473 | 473 | |
| 474 | 474 | /* We base the symmetric key on the encrypted key and private key, so that we always behave the |
@@ -477,7 +477,7 @@ discard block |
||
| 477 | 477 | $encryptedKey = $encKey->getCipherValue(); |
| 478 | 478 | $pkey = openssl_pkey_get_details($symmetricKeyInfo->key); |
| 479 | 479 | $pkey = sha1(serialize($pkey), true); |
| 480 | - $key = sha1($encryptedKey . $pkey, true); |
|
| 480 | + $key = sha1($encryptedKey.$pkey, true); |
|
| 481 | 481 | |
| 482 | 482 | /* Make sure that the key has the correct length. */ |
| 483 | 483 | if (strlen($key) > $keySize) { |
@@ -492,8 +492,8 @@ discard block |
||
| 492 | 492 | /* Make sure that the input key has the correct format. */ |
| 493 | 493 | if ($inputKeyAlgo !== $symKeyAlgo) { |
| 494 | 494 | throw new \Exception( |
| 495 | - 'Algorithm mismatch between input key and key in message. ' . |
|
| 496 | - 'Key was: ' . var_export($inputKeyAlgo, true) . '; message was: ' . |
|
| 495 | + 'Algorithm mismatch between input key and key in message. '. |
|
| 496 | + 'Key was: '.var_export($inputKeyAlgo, true).'; message was: '. |
|
| 497 | 497 | var_export($symKeyAlgo, true) |
| 498 | 498 | ); |
| 499 | 499 | } |
@@ -502,7 +502,7 @@ discard block |
||
| 502 | 502 | |
| 503 | 503 | $algorithm = $symmetricKey->getAlgorithm(); |
| 504 | 504 | if (in_array($algorithm, $blacklist, true)) { |
| 505 | - throw new \Exception('Algorithm disabled: ' . var_export($algorithm, true)); |
|
| 505 | + throw new \Exception('Algorithm disabled: '.var_export($algorithm, true)); |
|
| 506 | 506 | } |
| 507 | 507 | |
| 508 | 508 | /** @var string $decrypted */ |
@@ -514,8 +514,8 @@ discard block |
||
| 514 | 514 | * namespaces needed to parse the XML. |
| 515 | 515 | */ |
| 516 | 516 | $xml = '<root xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" '. |
| 517 | - 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' . |
|
| 518 | - $decrypted . |
|
| 517 | + 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'. |
|
| 518 | + $decrypted. |
|
| 519 | 519 | '</root>'; |
| 520 | 520 | |
| 521 | 521 | try { |
@@ -554,7 +554,7 @@ discard block |
||
| 554 | 554 | * Something went wrong during decryption, but for security |
| 555 | 555 | * reasons we cannot tell the user what failed. |
| 556 | 556 | */ |
| 557 | - Utils::getContainer()->getLogger()->error('Decryption failed: ' . $e->getMessage()); |
|
| 557 | + Utils::getContainer()->getLogger()->error('Decryption failed: '.$e->getMessage()); |
|
| 558 | 558 | throw new \Exception('Failed to decrypt XML element.', 0, $e); |
| 559 | 559 | } |
| 560 | 560 | } |
@@ -716,7 +716,7 @@ discard block |
||
| 716 | 716 | $regex = '/^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.\\d{1,9})?Z$/D'; |
| 717 | 717 | if (preg_match($regex, $time, $matches) == 0) { |
| 718 | 718 | throw new \Exception( |
| 719 | - 'Invalid SAML2 timestamp passed to xsDateTimeToTimestamp: ' . $time |
|
| 719 | + 'Invalid SAML2 timestamp passed to xsDateTimeToTimestamp: '.$time |
|
| 720 | 720 | ); |
| 721 | 721 | } |
| 722 | 722 | |
@@ -269,7 +269,7 @@ |
||
| 269 | 269 | * |
| 270 | 270 | * @param \DOMElement $node The element we should fetch the attribute from. |
| 271 | 271 | * @param string $attributeName The name of the attribute. |
| 272 | - * @param mixed|null $default The value that should be returned if the attribute doesn't exist. |
|
| 272 | + * @param false|null $default The value that should be returned if the attribute doesn't exist. |
|
| 273 | 273 | * @return bool|mixed The value of the attribute, or $default if the attribute doesn't exist. |
| 274 | 274 | * @throws \Exception |
| 275 | 275 | */ |
@@ -22,8 +22,8 @@ |
||
| 22 | 22 | return sprintf( |
| 23 | 23 | '%s%s%s', |
| 24 | 24 | $this->truncateStatus($responseStatus['Code']), |
| 25 | - $responseStatus['SubCode'] ? '/' . $this->truncateStatus($responseStatus['SubCode']) : '', |
|
| 26 | - $responseStatus['Message'] ? ' ' . $responseStatus['Message'] : '' |
|
| 25 | + $responseStatus['SubCode'] ? '/'.$this->truncateStatus($responseStatus['SubCode']) : '', |
|
| 26 | + $responseStatus['Message'] ? ' '.$responseStatus['Message'] : '' |
|
| 27 | 27 | ); |
| 28 | 28 | } |
| 29 | 29 | |
@@ -62,11 +62,11 @@ |
||
| 62 | 62 | */ |
| 63 | 63 | private $encryptionKey; |
| 64 | 64 | |
| 65 | - /** |
|
| 66 | - * The earliest time this assertion is valid, as an UNIX timestamp. |
|
| 67 | - * |
|
| 68 | - * @var int |
|
| 69 | - */ |
|
| 65 | + /** |
|
| 66 | + * The earliest time this assertion is valid, as an UNIX timestamp. |
|
| 67 | + * |
|
| 68 | + * @var int |
|
| 69 | + */ |
|
| 70 | 70 | private $notBefore; |
| 71 | 71 | |
| 72 | 72 | /** |
@@ -694,7 +694,7 @@ discard block |
||
| 694 | 694 | /** |
| 695 | 695 | * Check whether the NameId is encrypted. |
| 696 | 696 | * |
| 697 | - * @return true if the NameId is encrypted, false if not. |
|
| 697 | + * @return boolean if the NameId is encrypted, false if not. |
|
| 698 | 698 | */ |
| 699 | 699 | public function isNameIdEncrypted() |
| 700 | 700 | { |
@@ -1096,7 +1096,7 @@ discard block |
||
| 1096 | 1096 | * |
| 1097 | 1097 | * The URI reference MAY directly resolve into an XML document containing the referenced declaration. |
| 1098 | 1098 | * |
| 1099 | - * @return string |
|
| 1099 | + * @return Chunk |
|
| 1100 | 1100 | */ |
| 1101 | 1101 | public function getAuthnContextDeclRef() |
| 1102 | 1102 | { |
@@ -4,7 +4,6 @@ |
||
| 4 | 4 | |
| 5 | 5 | use RobRichards\XMLSecLibs\XMLSecEnc; |
| 6 | 6 | use RobRichards\XMLSecLibs\XMLSecurityKey; |
| 7 | -use SAML2\Exception\RuntimeException; |
|
| 8 | 7 | use SAML2\Utilities\Temporal; |
| 9 | 8 | use SAML2\XML\Chunk; |
| 10 | 9 | use SAML2\XML\saml\SubjectConfirmation; |
@@ -282,7 +282,7 @@ discard block |
||
| 282 | 282 | |
| 283 | 283 | if ($xml->getAttribute('Version') !== '2.0') { |
| 284 | 284 | /* Currently a very strict check. */ |
| 285 | - throw new \Exception('Unsupported version: ' . $xml->getAttribute('Version')); |
|
| 285 | + throw new \Exception('Unsupported version: '.$xml->getAttribute('Version')); |
|
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | $this->issueInstant = Utils::xsDateTimeToTimestamp($xml->getAttribute('IssueInstant')); |
@@ -384,7 +384,7 @@ discard block |
||
| 384 | 384 | continue; |
| 385 | 385 | } |
| 386 | 386 | if ($node->namespaceURI !== Constants::NS_SAML) { |
| 387 | - throw new \Exception('Unknown namespace of condition: ' . var_export($node->namespaceURI, true)); |
|
| 387 | + throw new \Exception('Unknown namespace of condition: '.var_export($node->namespaceURI, true)); |
|
| 388 | 388 | } |
| 389 | 389 | switch ($node->localName) { |
| 390 | 390 | case 'AudienceRestriction': |
@@ -407,7 +407,7 @@ discard block |
||
| 407 | 407 | /* Currently ignored. */ |
| 408 | 408 | break; |
| 409 | 409 | default: |
| 410 | - throw new \Exception('Unknown condition: ' . var_export($node->localName, true)); |
|
| 410 | + throw new \Exception('Unknown condition: '.var_export($node->localName, true)); |
|
| 411 | 411 | } |
| 412 | 412 | } |
| 413 | 413 | } |
@@ -1305,7 +1305,7 @@ discard block |
||
| 1305 | 1305 | $document = $parentElement->ownerDocument; |
| 1306 | 1306 | } |
| 1307 | 1307 | |
| 1308 | - $root = $document->createElementNS(Constants::NS_SAML, 'saml:' . 'Assertion'); |
|
| 1308 | + $root = $document->createElementNS(Constants::NS_SAML, 'saml:'.'Assertion'); |
|
| 1309 | 1309 | $parentElement->appendChild($root); |
| 1310 | 1310 | |
| 1311 | 1311 | /* Ugly hack to add another namespace declaration to the root element. */ |
@@ -1361,7 +1361,7 @@ discard block |
||
| 1361 | 1361 | if ($this->encryptedNameId === null) { |
| 1362 | 1362 | $this->nameId->toXML($subject); |
| 1363 | 1363 | } else { |
| 1364 | - $eid = $subject->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:' . 'EncryptedID'); |
|
| 1364 | + $eid = $subject->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:'.'EncryptedID'); |
|
| 1365 | 1365 | $subject->appendChild($eid); |
| 1366 | 1366 | $eid->appendChild($subject->ownerDocument->importNode($this->encryptedNameId, true)); |
| 1367 | 1367 | } |
@@ -1513,7 +1513,7 @@ discard block |
||
| 1513 | 1513 | if (is_array($this->attributesValueTypes) && array_key_exists($name, $this->attributesValueTypes)) { |
| 1514 | 1514 | $valueTypes = $this->attributesValueTypes[$name]; |
| 1515 | 1515 | if (is_array($valueTypes) && count($valueTypes) != count($values)) { |
| 1516 | - throw new \Exception('Array of value types and array of values have different size for attribute '. var_export($name, true)); |
|
| 1516 | + throw new \Exception('Array of value types and array of values have different size for attribute '.var_export($name, true)); |
|
| 1517 | 1517 | } |
| 1518 | 1518 | } else { |
| 1519 | 1519 | // if no type(s), default behaviour |
@@ -107,7 +107,7 @@ |
||
| 107 | 107 | /** |
| 108 | 108 | * Check whether the NameId is encrypted. |
| 109 | 109 | * |
| 110 | - * @return true if the NameId is encrypted, false if not. |
|
| 110 | + * @return boolean if the NameId is encrypted, false if not. |
|
| 111 | 111 | */ |
| 112 | 112 | public function isNameIdEncrypted() |
| 113 | 113 | { |
@@ -264,7 +264,7 @@ |
||
| 264 | 264 | if ($this->encryptedNameId === null) { |
| 265 | 265 | $this->nameId->toXML($root); |
| 266 | 266 | } else { |
| 267 | - $eid = $root->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:' . 'EncryptedID'); |
|
| 267 | + $eid = $root->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:'.'EncryptedID'); |
|
| 268 | 268 | $root->appendChild($eid); |
| 269 | 269 | $eid->appendChild($root->ownerDocument->importNode($this->encryptedNameId, true)); |
| 270 | 270 | } |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | * @param \SAML2\Configuration\Destination $currentDestination |
| 65 | 65 | * @param \SAML2\Response $response |
| 66 | 66 | * |
| 67 | - * @return \SAML2\Assertion[] Collection (\SAML2\Utilities\ArrayCollection) of \SAML2\Assertion objects |
|
| 67 | + * @return \SAML2\Utilities\ArrayCollection Collection (\SAML2\Utilities\ArrayCollection) of \SAML2\Assertion objects |
|
| 68 | 68 | */ |
| 69 | 69 | public function process( |
| 70 | 70 | ServiceProvider $serviceProviderConfiguration, |
@@ -134,7 +134,7 @@ discard block |
||
| 134 | 134 | /** |
| 135 | 135 | * @param \SAML2\Response $response |
| 136 | 136 | * |
| 137 | - * @return \SAML2\Assertion[] |
|
| 137 | + * @return \SAML2\Utilities\ArrayCollection |
|
| 138 | 138 | */ |
| 139 | 139 | private function processAssertions(Response $response) |
| 140 | 140 | { |
@@ -53,8 +53,8 @@ |
||
| 53 | 53 | const CM_BEARER = 'urn:oasis:names:tc:SAML:2.0:cm:bearer'; |
| 54 | 54 | |
| 55 | 55 | /** |
| 56 | - * Holder-of-Key subject confirmation method. |
|
| 57 | - */ |
|
| 56 | + * Holder-of-Key subject confirmation method. |
|
| 57 | + */ |
|
| 58 | 58 | const CM_HOK = 'urn:oasis:names:tc:SAML:2.0:cm:holder-of-key'; |
| 59 | 59 | |
| 60 | 60 | /** |
@@ -75,7 +75,7 @@ discard block |
||
| 75 | 75 | break; |
| 76 | 76 | |
| 77 | 77 | default: |
| 78 | - throw new \Exception('Unknown key type for encryption: ' . $key->type); |
|
| 78 | + throw new \Exception('Unknown key type for encryption: '.$key->type); |
|
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | $this->encryptedData = $enc->encryptNode($symmetricKey); |
@@ -112,7 +112,7 @@ discard block |
||
| 112 | 112 | $document = $parentElement->ownerDocument; |
| 113 | 113 | } |
| 114 | 114 | |
| 115 | - $root = $document->createElementNS(Constants::NS_SAML, 'saml:' . 'EncryptedAssertion'); |
|
| 115 | + $root = $document->createElementNS(Constants::NS_SAML, 'saml:'.'EncryptedAssertion'); |
|
| 116 | 116 | $parentElement->appendChild($root); |
| 117 | 117 | |
| 118 | 118 | $root->appendChild($document->importNode($this->encryptedData, true)); |
@@ -53,7 +53,7 @@ |
||
| 53 | 53 | CertificateProvider $configuration |
| 54 | 54 | ) { |
| 55 | 55 | $logger = $this->logger; |
| 56 | - $pemCandidates = $this->configuredKeys->filter(function (Key $key) use ($logger) { |
|
| 56 | + $pemCandidates = $this->configuredKeys->filter(function(Key $key) use ($logger) { |
|
| 57 | 57 | if (!$key instanceof X509) { |
| 58 | 58 | $logger->debug(sprintf('Skipping unknown key type: "%s"', $key['type'])); |
| 59 | 59 | return false; |
@@ -59,7 +59,7 @@ |
||
| 59 | 59 | { |
| 60 | 60 | if ($this->count() !== 1) { |
| 61 | 61 | throw new RuntimeException(sprintf( |
| 62 | - __CLASS__ . '::' . __METHOD__ . ' requires that the collection has exactly one element, ' |
|
| 62 | + __CLASS__.'::'.__METHOD__.' requires that the collection has exactly one element, ' |
|
| 63 | 63 | . '"%d" elements found', |
| 64 | 64 | $this->count() |
| 65 | 65 | )); |