diff --git a/scimono-server/src/main/java/com/sap/scimono/api/Groups.java b/scimono-server/src/main/java/com/sap/scimono/api/Groups.java index a785d1c..424a2d0 100644 --- a/scimono-server/src/main/java/com/sap/scimono/api/Groups.java +++ b/scimono-server/src/main/java/com/sap/scimono/api/Groups.java @@ -89,10 +89,11 @@ public Groups(@Context Application appContext, @Context UriInfo uriInfo) { // @formatter:off public Response getGroup(@PathParam("id") final String groupId, @QueryParam(ATTRIBUTES_PARAM) final String attributes, + @QueryParam(FILTER_PARAM) final String filter, @QueryParam(EXCLUDED_ATTRIBUTES_PARAM) final String excludedAttributes) { // @formatter:on logger.trace("Reading group {}", groupId); - Group groupFromDb = groupAPI.getGroup(groupId, RequestedResourceAttributesParser.parse(attributes, excludedAttributes)); + Group groupFromDb = groupAPI.getGroup(groupId, RequestedResourceAttributesParser.parse(attributes, excludedAttributes), filter); if (groupFromDb == null) { throw new ResourceNotFoundException(RESOURCE_TYPE_GROUP, groupId); diff --git a/scimono-server/src/main/java/com/sap/scimono/api/Users.java b/scimono-server/src/main/java/com/sap/scimono/api/Users.java index 84c03e7..05aa3a0 100644 --- a/scimono-server/src/main/java/com/sap/scimono/api/Users.java +++ b/scimono-server/src/main/java/com/sap/scimono/api/Users.java @@ -118,11 +118,12 @@ public Response getMe(@Context final SecurityContext sec) { @Path("{id}") // @formatter:off public Response getUser(@PathParam("id") final String userId, + @QueryParam(FILTER_PARAM) final String filter, @QueryParam(ATTRIBUTES_PARAM) final String attributes, @QueryParam(EXCLUDED_ATTRIBUTES_PARAM) final String excludedAttributes) { // @formatter:on logger.trace("Reading user {}", userId); - User userFromDb = usersAPI.getUser(userId, RequestedResourceAttributesParser.parse(attributes, excludedAttributes)); + User userFromDb = usersAPI.getUser(userId, RequestedResourceAttributesParser.parse(attributes, excludedAttributes), filter); if (userFromDb == null) { throw new ResourceNotFoundException(RESOURCE_TYPE_USER, userId); diff --git a/scimono-server/src/main/java/com/sap/scimono/callback/groups/GroupsCallback.java b/scimono-server/src/main/java/com/sap/scimono/callback/groups/GroupsCallback.java index f6ced2d..9a9672f 100644 --- a/scimono-server/src/main/java/com/sap/scimono/callback/groups/GroupsCallback.java +++ b/scimono-server/src/main/java/com/sap/scimono/callback/groups/GroupsCallback.java @@ -16,15 +16,30 @@ public interface GroupsCallback { /** - * @param groupId, unique group id + * @param groupId unique group id of the requested group * @return the group with the specified groupId or null if no such group exists */ Group getGroup(final String groupId); + /** + * @param groupId unique group id of the requested group + * @param additionalAttributes additional attributes to be returned or excluded from the response + * @return the group with the specified groupId or null if no such group exists + */ default Group getGroup(String groupId, RequestedResourceAttributes additionalAttributes) { return getGroup(groupId); } + /** + * @param groupId unique group id of the requested group + * @param additionalAttributes additional attributes to be returned or excluded from the response + * @param filter value of the filter query parameter + * @return the group with the specified groupId or null if no such group exists + */ + default Group getGroup(String groupId, RequestedResourceAttributes additionalAttributes, String filter) { + return getGroup(groupId, additionalAttributes); + } + /** * Returns a page of groups (limited by {@link SCIMConfigurationCallback#getMaxResourcesPerPage()}), * taking into account the specified filter and paging parameters. diff --git a/scimono-server/src/main/java/com/sap/scimono/callback/users/UsersCallback.java b/scimono-server/src/main/java/com/sap/scimono/callback/users/UsersCallback.java index 1d7e04a..7832876 100644 --- a/scimono-server/src/main/java/com/sap/scimono/callback/users/UsersCallback.java +++ b/scimono-server/src/main/java/com/sap/scimono/callback/users/UsersCallback.java @@ -36,6 +36,15 @@ default User getUser(String userId, RequestedResourceAttributes additionalAttrib return getUser(userId); } + /** + * @param additionalAttributes additional attributes to be returned of excluded from the response + * @param filter value of the filter query parameter + * @return the user with the specified userId or null if no such user exists + */ + default User getUser(String userId, RequestedResourceAttributes additionalAttributes, final String filter) { + return getUser(userId, additionalAttributes); + } + /** * Returns a page of users (limited by {@link SCIMConfigurationCallback#getMaxResourcesPerPage()}), * taking into account the specified filter and paging parameters.