This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 3_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/3_0_X by this push:
new 0eed254fbd SCIM: fixing startIndex value in results
0eed254fbd is described below
commit 0eed254fbde0eb5f3ecca8cc5ae09b7c315773d0
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Tue Jul 9 08:53:45 2024 +0200
SCIM: fixing startIndex value in results
---
.../syncope/ext/scimv2/cxf/service/AbstractSCIMService.java | 8 ++++----
.../src/test/java/org/apache/syncope/fit/core/SCIMITCase.java | 2 ++
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git
a/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/service/AbstractSCIMService.java
b/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/service/AbstractSCIMService.java
index dddb12e687..268c006bd7 100644
---
a/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/service/AbstractSCIMService.java
+++
b/ext/scimv2/scim-rest-cxf/src/main/java/org/apache/syncope/ext/scimv2/cxf/service/AbstractSCIMService.java
@@ -155,9 +155,10 @@ abstract class AbstractSCIMService<R extends SCIMResource>
{
SearchCondVisitor visitor = new SearchCondVisitor(type,
confManager.get());
- int startIndex = request.getStartIndex() <= 1
+ int page = request.getStartIndex() <= 1
? 1
: (request.getStartIndex() / AnyDAO.DEFAULT_PAGE_SIZE) + 1;
+ int startIndex = request.getStartIndex() <= 1 ? 1 :
request.getStartIndex();
int itemsPerPage = request.getCount() <= 1 ? AnyDAO.DEFAULT_PAGE_SIZE
: request.getCount();
@@ -177,7 +178,7 @@ abstract class AbstractSCIMService<R extends SCIMResource> {
StringUtils.isBlank(request.getFilter())
? null
: SearchCondConverter.convert(visitor, request.getFilter()),
- startIndex,
+ page,
itemsPerPage,
sort,
SyncopeConstants.ROOT_REALM,
@@ -188,8 +189,7 @@ abstract class AbstractSCIMService<R extends SCIMResource> {
throw new BadRequestException(ErrorType.tooMany, "Too many results
found");
}
- ListResponse<R> response = new ListResponse<>(
- result.getLeft(), startIndex == 1 ? 1 : startIndex - 1,
itemsPerPage);
+ ListResponse<R> response = new ListResponse<>(result.getLeft(),
startIndex, itemsPerPage);
result.getRight().forEach(anyTO -> {
SCIMResource resource = null;
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
index 7d463b8dcb..f28bafd5b4 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
@@ -322,6 +322,7 @@ public class SCIMITCase extends AbstractITCase {
response = webClient().path("Groups").
query("sortBy", "displayName").
+ query("startIndex", 2).
query("count", 11).
get();
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
@@ -333,6 +334,7 @@ public class SCIMITCase extends AbstractITCase {
});
assertNotNull(result);
assertTrue(result.getTotalResults() > 0);
+ assertEquals(2, result.getStartIndex());
assertEquals(11, result.getItemsPerPage());
assertFalse(result.getResources().isEmpty());