public function getAttributes()
    {
        if ($this->cachedAttributes != null) {
          return $this->cachedAttributes;
        }

        $entries = $this->_queryAssertion('/saml:AttributeStatement/saml:Attribute');
        $this->cachedAttributes = array();

        /** $entry DOMNode */
        foreach ($entries as $entry) {
            $attributeName = $entry->attributes->getNamedItem('Name')->nodeValue;

            // Keep only one value for each entry type
            foreach ($entry->childNodes as $childNode) {
                if (is_a($childNode, 'DOMElement') && preg_match('/AttributeValue/',$childNode->tagName)){
                    $attributeValue = $childNode->nodeValue;
                }
            }

            $this->cachedAttributes[$attributeName] = $attributeValue;
        }
        return $this->cachedAttributes;
    }