diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/model/Page.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/model/Page.java
index 9e5ad419e1d716d85e7eff2d6d2d1eb999efb65d..5d9a8dd7e2d6d472fa602cb617ac92a8eb859568 100644
--- a/src/main/java/fr/univtln/bruno/samples/jaxrs/model/Page.java
+++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/model/Page.java
@@ -20,7 +20,7 @@ public class Page<T> {
         this.pageNumber = pageNumber;
         this.elementTotal = elementTotal;
         this.content = content;
-        this.pageTotal = elementTotal / pageSize;
+        this.pageTotal = (elementTotal+pageSize-1) / pageSize;
     }
 
     public static <V> Page<V> newInstance(long pageSize, long pageNumber, long elementTotal, List<V> content) {
diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/security/filter/response/PaginationLinkFilter.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/security/filter/response/PaginationLinkFilter.java
index 7b6b85b05b492f2cf74f66f5bec5b2098483ca48..5ab062833d8abef90b38494e525c50d5214f9e3f 100644
--- a/src/main/java/fr/univtln/bruno/samples/jaxrs/security/filter/response/PaginationLinkFilter.java
+++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/security/filter/response/PaginationLinkFilter.java
@@ -1,17 +1,21 @@
 package fr.univtln.bruno.samples.jaxrs.security.filter.response;
 
 import fr.univtln.bruno.samples.jaxrs.model.Page;
+import jakarta.ws.rs.WebApplicationException;
 import jakarta.ws.rs.container.ContainerRequestContext;
 import jakarta.ws.rs.container.ContainerResponseContext;
 import jakarta.ws.rs.container.ContainerResponseFilter;
 import jakarta.ws.rs.core.Link;
+import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.UriInfo;
 import jakarta.ws.rs.ext.Provider;
+import lombok.extern.java.Log;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @Provider
+@Log
 public class PaginationLinkFilter implements ContainerResponseFilter {
     public static final String JAXRS_SAMPLE_TOTAL_COUNT = "JAXRS_Sample-Total-Count";
     public static final String JAXRS_SAMPLE_PAGE_COUNT = "JAXRS_Sample-Page-Count";
@@ -34,6 +38,10 @@ public class PaginationLinkFilter implements ContainerResponseFilter {
         UriInfo uriInfo = requestContext.getUriInfo();
         Page entity = (Page) responseContext.getEntity();
 
+        log.info("-->"+entity.getPageNumber()+"/"+entity.getPageTotal());
+       if (entity.getPageNumber()>entity.getPageTotal())
+            throw new WebApplicationException(Response.Status.NOT_FOUND);
+
         //We replace the entity by the content of the page (we remove the envelope).
         responseContext.setEntity(entity.getContent());
 
@@ -41,7 +49,7 @@ public class PaginationLinkFilter implements ContainerResponseFilter {
 
         //We add the need semantic links in the header
         //Not on the first page
-        if (entity.getPageSize() > FIRST_PAGE) {
+        if (entity.getPageNumber() > FIRST_PAGE) {
             linksList.add(Link.fromUriBuilder(uriInfo.getRequestUriBuilder()
                     .replaceQueryParam(PAGE_QUERY_PARAM,
                             entity.getPageNumber() - 1))
@@ -54,7 +62,7 @@ public class PaginationLinkFilter implements ContainerResponseFilter {
                     .build());
         }
         //Not on the last
-        if (entity.getPageSize() < entity.getPageTotal()) {
+        if (entity.getPageNumber() < entity.getPageTotal()) {
             linksList.add(Link.fromUriBuilder(uriInfo.getRequestUriBuilder()
                     .replaceQueryParam(PAGE_QUERY_PARAM,
                             entity.getPageNumber() + 1))