for (org.opensaml.saml1.core.Attribute attribute : attributes) {
if (LOG.isDebugEnabled()) {
LOG.debug("parsing attribute: "
+ attribute.getAttributeName());
}
Claim c = new Claim();
c.setIssuer(assertion.getIssuer());
if (attribute.getAttributeNamespace() != null) {
URI attrName = URI.create(attribute.getAttributeName());
if (attrName.isAbsolute()) {
// Workaround for CXF-4484
c.setClaimType(attrName);
if (attribute.getAttributeName().startsWith(attribute.getAttributeNamespace())) {
LOG.info("AttributeName fully qualified '" + attribute.getAttributeName()
+ "' but does match with AttributeNamespace '"
+ attribute.getAttributeNamespace() + "'");
} else {
LOG.warn("AttributeName fully qualified '" + attribute.getAttributeName()
+ "' but does NOT match with AttributeNamespace (ignored) '"
+ attribute.getAttributeNamespace() + "'");
}
} else {
if (attribute.getAttributeNamespace().endsWith("/")) {
c.setClaimType(URI.create(attribute.getAttributeNamespace()
+ attribute.getAttributeName()));
} else {
c.setClaimType(URI.create(attribute.getAttributeNamespace()
+ "/" + attribute.getAttributeName()));
}
}
} else {
c.setClaimType(URI.create(attribute.getAttributeName()));
}
List<String> valueList = new ArrayList<String>();
for (XMLObject attributeValue : attribute.getAttributeValues()) {
Element attributeValueElement = attributeValue.getDOM();
String value = attributeValueElement.getTextContent();