diff --git a/CHANGELOG.md b/CHANGELOG.md
index cb0c41592ad2cd8f125b0db8f186d175faca689e..7faee3126e000d77f46aed6099fed53d814b8550 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,7 +18,16 @@
 -->
 
 
-## 4.0.0 (???)
+## 4.1.0 (Upcoming)
+
+### ✨ Feature
+- Add features related to corrige (commentary, commit specific link / update, delete link)
+
+### 🎨 Interface
+- Ask for confirmation before creating an exercise that already exists
+
+
+## 4.0.0 (2024-04-19)
 
 ### ✨ Feature
 - Add features related to corrige (commentary, commit specific link / update, delete link)
diff --git a/ExpressAPI/package-lock.json b/ExpressAPI/package-lock.json
index dfe25011593756652ea4192cd94d071e9b5367a9..95813cdf25311ccac689201564dc729a99a6f917 100644
--- a/ExpressAPI/package-lock.json
+++ b/ExpressAPI/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "dojo_backend_api",
-    "version": "4.0.0",
+    "version": "4.1.0",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "dojo_backend_api",
-            "version": "4.0.0",
+            "version": "4.1.0",
             "license": "AGPLv3",
             "dependencies": {
                 "@dotenvx/dotenvx": "^0.27.1",
diff --git a/ExpressAPI/package.json b/ExpressAPI/package.json
index 09038b7250d83b02be2d9dc90f3918c253d149d0..cd772d9c9a2a1fd4265bc7563c8e0b5e6bddb54e 100644
--- a/ExpressAPI/package.json
+++ b/ExpressAPI/package.json
@@ -1,7 +1,7 @@
 {
     "name"           : "dojo_backend_api",
     "description"    : "Backend API of the Dojo project",
-    "version"        : "4.0.0",
+    "version"        : "4.1.0",
     "license"        : "AGPLv3",
     "author"         : "Michaël Minelli <dojo@minelli.me>",
     "main"           : "dist/src/app.js",
diff --git a/ExpressAPI/src/middlewares/SecurityMiddleware.ts b/ExpressAPI/src/middlewares/SecurityMiddleware.ts
index 83c5100ada96e3d8e83c192d27b76559d3461962..02c54c16b151e259a45b8ff47fda8f9f50b17bf6 100644
--- a/ExpressAPI/src/middlewares/SecurityMiddleware.ts
+++ b/ExpressAPI/src/middlewares/SecurityMiddleware.ts
@@ -6,8 +6,8 @@ import AssignmentManager from '../managers/AssignmentManager.js';
 
 
 class SecurityMiddleware {
-    private isConnected(checkIfConnected: boolean, req: express.Request): boolean {
-        return checkIfConnected && req.session.profile !== null && req.session.profile !== undefined;
+    private checkIfConnected(checkIfConnected: boolean, req: express.Request): boolean {
+        return !checkIfConnected || (req.session.profile !== null && req.session.profile !== undefined);
     }
 
     private async checkType(checkType: SecurityCheckType, req: express.Request): Promise<boolean> {
@@ -33,7 +33,7 @@ class SecurityMiddleware {
     // First check if connected then check if at least ONE rule match. It's NOT an AND but it's a OR function.
     check(checkIfConnected: boolean, ...checkTypes: Array<SecurityCheckType>): (req: express.Request, res: express.Response, next: express.NextFunction) => void {
         return (req: express.Request, res: express.Response, next: express.NextFunction) => {
-            if ( !this.isConnected(checkIfConnected, req) ) {
+            if ( !this.checkIfConnected(checkIfConnected, req) ) {
                 return req.session.sendResponse(res, StatusCodes.UNAUTHORIZED);
             }