From 54c0f9069e20c1e084f593881790a7698a0f6229 Mon Sep 17 00:00:00 2001 From: LeoMoulin Date: Sat, 9 Mar 2024 10:45:04 +0100 Subject: [PATCH] =?UTF-8?q?-=20Impl=C3=A9mentation=20de=20la=20limite=20de?= =?UTF-8?q?=205=20tokens=20par=20utilisateurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ovh/herisson/Clyde/EndPoints/MockController.java | 11 +++++++++++ .../herisson/Clyde/Repositories/TokenRepository.java | 4 ++++ .../ovh/herisson/Clyde/Services/TokenService.java | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java index f4ae1b0..9f9dcc0 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java @@ -67,6 +67,17 @@ public class MockController { } } + //Nous allons donner des tokens a herobrine pour tester la limite de token + @PostMapping("/herobrine") + public void giveHerobrineTokens(){ + User herobrine = userRepo.findById(1); + Calendar c = Calendar.getInstance(); + for (int i = 1; i <= 7; i++){ + Token t = new Token(herobrine, herobrine.getPassword(), c.getTime()); + c.add(Calendar.DAY_OF_YEAR, 1); + tokenService.saveToken(t); + } + } @DeleteMapping("/mock") public void deleteMock(){ for (User user:mockUsers){ diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/TokenRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/TokenRepository.java index d375e7a..d3b422a 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Repositories/TokenRepository.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/TokenRepository.java @@ -4,9 +4,13 @@ import org.springframework.data.repository.CrudRepository; import ovh.herisson.Clyde.Tables.Token; import ovh.herisson.Clyde.Tables.User; +import java.util.ArrayList; + public interface TokenRepository extends CrudRepository { Token getByToken(String token); Iterable getByUser(User user); + + ArrayList getByUserOrderByExpirationDate(User user); } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java index 2e09bcc..6dd0cfb 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java @@ -8,6 +8,7 @@ import ovh.herisson.Clyde.Tables.User; import java.nio.charset.StandardCharsets; import java.security.SecureRandom; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -34,6 +35,11 @@ public class TokenService { } public void saveToken(Token token){ + //Si l'utilisateur a déja 5 token delete celui qui devait expirer le plus vite + ArrayList tokenList = tokenRepo.getByUserOrderByExpirationDate(token.getUser()); + if (tokenList.size() == 5){ + tokenRepo.delete(tokenList.get(0)); + } tokenRepo.save(token); }