in scim-server/src/main/java/org/apache/directory/scim/server/rest/AttributeUtil.java [137:165]
public <T extends ScimResource> T setExcludedAttributesForDisplay(T resource, Set<AttributeReference> excludedAttributes) throws AttributeException {
if (excludedAttributes.isEmpty()) {
return setAttributesForDisplay(resource);
} else {
T copy = cloneScimResource(resource);
String resourceType = copy.getResourceType();
Schema schema = schemaRegistry.getBaseSchemaOfResourceType(resourceType);
// return always and default, exclude never and specified attributes
Set<Attribute> attributesToRemove = resolveAttributeReferences(excludedAttributes, false);
removeAttributesOfType(copy, schema, Returned.REQUEST);
removeAttributesOfType(copy, schema, Returned.NEVER);
removeAttributes(copy, schema, attributesToRemove);
for (Entry<String, ScimExtension> extensionEntry : copy.getExtensions().entrySet()) {
String extensionUrn = extensionEntry.getKey();
ScimExtension scimExtension = extensionEntry.getValue();
Schema extensionSchema = schemaRegistry.getSchema(extensionUrn);
removeAttributesOfType(scimExtension, extensionSchema, Returned.REQUEST);
removeAttributesOfType(scimExtension, extensionSchema, Returned.NEVER);
removeAttributes(scimExtension, extensionSchema, attributesToRemove);
}
return copy;
}
}