in scim-server/src/main/java/org/apache/directory/scim/server/rest/AttributeUtil.java [286:317]
private Set<Attribute> findAttribute(AttributeReference attributeReference, boolean includeAttributeChain) throws AttributeDoesNotExistException {
String schemaUrn = attributeReference.getUrn();
Schema schema = null;
Set<Attribute> attributes;
if (!StringUtils.isEmpty(schemaUrn)) {
schema = schemaRegistry.getSchema(schemaUrn);
attributes = findAttributeInSchema(schema, attributeReference, includeAttributeChain);
if (attributes.isEmpty()) {
log.error("Attribute " + attributeReference.getFullyQualifiedAttributeName() + "not found in schema " + schemaUrn);
throw new AttributeDoesNotExistException(attributeReference.getFullyQualifiedAttributeName());
}
return attributes;
}
// Handle unqualified attributes, look in the core schemas
schema = schemaRegistry.getSchema(ScimUser.SCHEMA_URI);
attributes = findAttributeInSchema(schema, attributeReference, includeAttributeChain);
if (!attributes.isEmpty()) {
return attributes;
}
schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
attributes = findAttributeInSchema(schema, attributeReference, includeAttributeChain);
if (!attributes.isEmpty()) {
return attributes;
}
log.error("Attribute " + attributeReference.getFullyQualifiedAttributeName() + "not found in any schema.");
throw new AttributeDoesNotExistException(attributeReference.getFullyQualifiedAttributeName());
}