Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,14 @@ public interface Repository<T extends ScimResource> {
* may be truncated by the scope specified by the passed PageRequest and
* the order of the returned resources may be controlled by the passed
* SortRequest.
*
*
* <p><b>Sorting:</b> If the request context contains a {@link org.apache.directory.scim.spec.filter.SortRequest},
* the repository is responsible for applying it if the backend supports server-side
* sorting. The SCIM server layer does NOT apply post-retrieval sorting as a fallback.
* If the requested sort attribute is not supported, the repository should silently ignore
* the sort request and return results in the backend's natural order, per
* <a href="https://datatracker.ietf.org/doc/html/rfc7644#section-3.4.2.3">RFC 7644 §3.4.2.3</a>.</p>
*
* @param filter The filter that determines the ScimResources that will be
* part of the ResultList.
* @param requestContext the context object holding additional information about the request.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.ScimExtension;
import org.apache.directory.scim.spec.resources.ScimGroup;

Expand Down Expand Up @@ -115,12 +116,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
return groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.Email;
import org.apache.directory.scim.spec.resources.Name;
import org.apache.directory.scim.spec.resources.ScimExtension;
Expand Down Expand Up @@ -148,12 +149,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimUser.SCHEMA_URI);
return users.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.ScimExtension;
import org.apache.directory.scim.spec.resources.ScimGroup;

Expand Down Expand Up @@ -115,12 +116,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
return groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.Email;
import org.apache.directory.scim.spec.resources.Name;
import org.apache.directory.scim.spec.resources.ScimExtension;
Expand Down Expand Up @@ -148,12 +149,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimUser.SCHEMA_URI);
return users.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.ScimExtension;
import org.apache.directory.scim.spec.resources.ScimGroup;

Expand Down Expand Up @@ -115,12 +116,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
return groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.Email;
import org.apache.directory.scim.spec.resources.Name;
import org.apache.directory.scim.spec.resources.ScimExtension;
Expand Down Expand Up @@ -148,12 +149,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimUser.SCHEMA_URI);
return users.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.ScimExtension;
import org.apache.directory.scim.spec.resources.ScimGroup;

Expand Down Expand Up @@ -115,12 +116,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
return groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.Email;
import org.apache.directory.scim.spec.resources.Name;
import org.apache.directory.scim.spec.resources.ScimExtension;
Expand Down Expand Up @@ -148,12 +149,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimUser.SCHEMA_URI);
return users.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.ScimExtension;
import org.apache.directory.scim.spec.resources.ScimGroup;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -109,12 +110,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
return groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.Email;
import org.apache.directory.scim.spec.resources.Name;
import org.apache.directory.scim.spec.resources.ScimExtension;
Expand Down Expand Up @@ -142,12 +143,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimUser.SCHEMA_URI);
return users.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.ScimExtension;
import org.apache.directory.scim.spec.resources.ScimGroup;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -109,12 +110,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
return groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.resources.Email;
import org.apache.directory.scim.spec.resources.Name;
import org.apache.directory.scim.spec.resources.ScimExtension;
Expand Down Expand Up @@ -142,12 +143,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimUser.SCHEMA_URI);
return users.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
import org.apache.directory.scim.spec.filter.Filter;
import org.apache.directory.scim.spec.filter.FilterExpressions;
import org.apache.directory.scim.spec.filter.FilterResponse;
import org.apache.directory.scim.spec.filter.PageRequest;
import org.apache.directory.scim.spec.filter.SortExpressions;
import org.apache.directory.scim.spec.schema.Schema;
import org.apache.directory.scim.spec.patch.PatchOperation;
import org.apache.directory.scim.spec.resources.ScimExtension;
import org.apache.directory.scim.spec.resources.ScimGroup;
Expand Down Expand Up @@ -133,12 +134,11 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
Schema schema = schemaRegistry.getSchema(ScimGroup.SCHEMA_URI);
return groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schema))
.sorted(SortExpressions.comparator(requestContext.getSortRequest(), schema))
.collect(FilterResponse.paginate(requestContext.getPageRequestOrDefault()));
}

@Override
Expand Down
Loading
Loading