diff --git a/pom.xml b/pom.xml
index 23f8e121ed7379678afdded38830660221751ea1..99e295d738afa2ea9c3b727591deb08d11d79b5c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,9 +105,6 @@
             <version>3.11</version>
             <scope>test</scope>
         </dependency>
-
-
-
     </dependencies>
     <build>
         <plugins>
@@ -134,7 +131,7 @@
                     </execution>
                 </executions>
                 <configuration>
-                    <mainClass>fr.univtln.bruno.samples.jaxrs.server.BiblioServer</mainClass>
+                    <mainClass>${main.class}</mainClass>
                 </configuration>
             </plugin>
 
@@ -329,5 +326,6 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco-merged-coverage-report/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
+        <main.class>fr.univtln.bruno.samples.jaxrs.server.BiblioServer</main.class>
     </properties>
 </project>
diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/resources/BiblioResource.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/resources/BiblioResource.java
index fcaa9310700075ae4a54571f16ec647906ed19f6..c827b4ed30f94fa20e5b2322aee73a83008b6afa 100644
--- a/src/main/java/fr/univtln/bruno/samples/jaxrs/resources/BiblioResource.java
+++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/resources/BiblioResource.java
@@ -5,6 +5,7 @@ import fr.univtln.bruno.samples.jaxrs.exceptions.IllegalArgumentException;
 import fr.univtln.bruno.samples.jaxrs.exceptions.NotFoundException;
 import fr.univtln.bruno.samples.jaxrs.model.BiblioModel;
 import fr.univtln.bruno.samples.jaxrs.model.BiblioModel.Auteur;
+import fr.univtln.bruno.samples.jaxrs.status.Status;
 import jakarta.ws.rs.*;
 import jakarta.ws.rs.core.MediaType;
 
@@ -38,7 +39,15 @@ public class BiblioResource {
         return modeleBibliotheque.updateAuteur(id, auteur);
     }
 
+    /**
+     * Status annotation is a trick to fine tune 2XX status codes (see the status package).
+     *
+     * @param auteur
+     * @return
+     * @throws IllegalArgumentException
+     */
     @POST
+    @Status(Status.CREATED)
     @Path("auteurs")
     @Consumes(MediaType.APPLICATION_JSON)
     public Auteur ajouterAuteur(Auteur auteur) throws IllegalArgumentException {
diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/status/Status.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/status/Status.java
new file mode 100644
index 0000000000000000000000000000000000000000..1b45ac449ad2e454ea62728b8347fcf7c908ee3d
--- /dev/null
+++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/status/Status.java
@@ -0,0 +1,20 @@
+package fr.univtln.bruno.samples.jaxrs.status;
+
+import jakarta.ws.rs.NameBinding;
+import jakarta.ws.rs.core.Response;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+
+@NameBinding
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Status {
+    int CREATED = 201;
+    int ACCEPTED = 202;
+    int NO_CONTENT = 204;
+    int RESET_CONTENT = 205;
+    int PARTIAL_CONTENT = 206;
+
+    int value();
+}
\ No newline at end of file
diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..a7e3e040d0d71ee7449e5d14ee74485071974ca7
--- /dev/null
+++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java
@@ -0,0 +1,27 @@
+package fr.univtln.bruno.samples.jaxrs.status;
+
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.ext.Provider;
+
+import java.io.IOException;
+import java.lang.annotation.Annotation;
+
+@Provider
+public class StatusFilter implements ContainerResponseFilter {
+
+    @Override
+    public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException {
+        if (containerResponseContext.getStatus() == Response.Status.OK.getStatusCode()) {
+            for (Annotation annotation : containerResponseContext.getEntityAnnotations()) {
+                if (annotation instanceof Status) {
+                    containerResponseContext.setStatus(((Status) annotation).value());
+                    break;
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file