예제 #1
0
 public function test_get_all_attribute_statements()
 {
     $assertion = new Assertion();
     $assertion->addItem(new AuthnStatement());
     $assertion->addItem($attributeStatement1 = new AttributeStatement());
     $assertion->addItem(new AuthnStatement());
     $assertion->addItem($attributeStatement2 = new AttributeStatement());
     $arr = $assertion->getAllAttributeStatements();
     $this->assertCount(2, $arr);
     $this->assertSame($attributeStatement1, $arr[0]);
     $this->assertSame($attributeStatement2, $arr[1]);
 }
 /**
  * @param Assertion $assertion
  *
  * @return null|string
  */
 private function getUsernameFromAssertion(Assertion $assertion)
 {
     foreach ($this->attributes as $attributeName) {
         if (self::NAME_ID == $attributeName) {
             if ($assertion->getSubject() && $assertion->getSubject()->getNameID() && $assertion->getSubject()->getNameID()->getValue()) {
                 return $assertion->getSubject()->getNameID()->getValue();
             }
         } else {
             foreach ($assertion->getAllAttributeStatements() as $attributeStatement) {
                 $attribute = $attributeStatement->getFirstAttributeByName($attributeName);
                 if ($attribute && $attribute->getFirstAttributeValue()) {
                     return $attribute->getFirstAttributeValue();
                 }
             }
         }
     }
     return null;
 }