From fa1a716e6aeebd84c81218aad9053b5cdfede86c Mon Sep 17 00:00:00 2001 From: "louis.guichard-montguers" Date: Tue, 1 Apr 2025 15:25:14 +0200 Subject: [PATCH] grand remplacement --- .../assembler/QuoteModelAssembler.java | 18 -------- .../assembler/UserModelAssembler.java | 18 -------- .../wfwebapi/config/SecurityConfig.java | 33 -------------- .../exception/ResourceNotFoundException.java | 7 --- .../exception/UnauthorizedException.java | 7 --- .../wfwebapi/repository/AdminRepository.java | 7 --- .../repository/CaracterRepository.java | 7 --- .../repository/CommentaryRepository.java | 9 ---- .../repository/DailyQuoteRepository.java | 7 --- .../repository/FavoriteRepository.java | 10 ----- .../wfwebapi/repository/ImageRepository.java | 7 --- .../repository/QuestionRepository.java | 7 --- .../repository/QuizQuestionRepository.java | 8 ---- .../wfwebapi/repository/QuoteRepository.java | 8 ---- .../repository/RecordQuizRepository.java | 8 ---- .../wfwebapi/repository/SourceRepository.java | 7 --- .../wfwebapi/repository/UserRepository.java | 12 ----- .../security/JwtAuthenticationFilter.java | 38 ---------------- .../wfwebapi/security/JwtTokenProvider.java | 45 ------------------- 19 files changed, 263 deletions(-) delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/QuoteModelAssembler.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/UserModelAssembler.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/config/SecurityConfig.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/ResourceNotFoundException.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/UnauthorizedException.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/AdminRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CaracterRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CommentaryRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/DailyQuoteRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/FavoriteRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/ImageRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuestionRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuizQuestionRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuoteRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/RecordQuizRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/SourceRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/UserRepository.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtAuthenticationFilter.java delete mode 100644 WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtTokenProvider.java diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/QuoteModelAssembler.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/QuoteModelAssembler.java deleted file mode 100644 index fcb8db1..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/QuoteModelAssembler.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.wfwebapi.assembler; - -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; -import com.example.wfwebapi.controller.QuoteController; -import com.example.wfwebapi.model.Quote; -import org.springframework.hateoas.EntityModel; -import org.springframework.hateoas.server.RepresentationModelAssembler; -import org.springframework.stereotype.Component; - -@Component -public class QuoteModelAssembler implements RepresentationModelAssembler> { - @Override - public EntityModel toModel(Quote quote) { - return EntityModel.of(quote, - linkTo(methodOn(QuoteController.class).getQuoteById(quote.getId())).withSelfRel(), - linkTo(methodOn(QuoteController.class).getAllQuotes(0, 10)).withRel("quotes")); - } -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/UserModelAssembler.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/UserModelAssembler.java deleted file mode 100644 index fd60a4e..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/assembler/UserModelAssembler.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.wfwebapi.assembler; - -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; -import com.example.wfwebapi.controller.UserController; -import com.example.wfwebapi.model.User; -import org.springframework.hateoas.EntityModel; -import org.springframework.hateoas.server.RepresentationModelAssembler; -import org.springframework.stereotype.Component; - -@Component -public class UserModelAssembler implements RepresentationModelAssembler> { - @Override - public EntityModel toModel(User user) { - return EntityModel.of(user, - linkTo(methodOn(UserController.class).getUserById(user.getId())).withSelfRel(), - linkTo(methodOn(UserController.class).getAllUsers(0, 5)).withRel("users")); - } -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/config/SecurityConfig.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/config/SecurityConfig.java deleted file mode 100644 index c9c5108..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/config/SecurityConfig.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.example.wfwebapi.config; - -import com.example.wfwebapi.security.JwtAuthenticationFilter; -import com.example.wfwebapi.security.JwtTokenProvider; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.Customizer; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.web.SecurityFilterChain; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -@Configuration -public class SecurityConfig { - - private final JwtTokenProvider tokenProvider; - - public SecurityConfig(JwtTokenProvider tokenProvider) { - this.tokenProvider = tokenProvider; - } - - @Bean - public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { - http.csrf(csrf -> csrf.disable()) - .authorizeHttpRequests(authz -> authz - .requestMatchers("/api/v1/auth/**").permitAll() // par exemple, pour la connexion - .anyRequest().authenticated() - ) - .addFilterBefore(new JwtAuthenticationFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class) - .httpBasic(Customizer.withDefaults()); - - return http.build(); - } -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/ResourceNotFoundException.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/ResourceNotFoundException.java deleted file mode 100644 index f8b5fe0..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/ResourceNotFoundException.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.exception; - -public class ResourceNotFoundException extends RuntimeException { - public ResourceNotFoundException(String message) { - super(message); - } -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/UnauthorizedException.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/UnauthorizedException.java deleted file mode 100644 index c7b9de8..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/exception/UnauthorizedException.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.exception; - -public class UnauthorizedException extends RuntimeException { - public UnauthorizedException(String message) { - super(message); - } -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/AdminRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/AdminRepository.java deleted file mode 100644 index f819977..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/AdminRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Admin; - -public interface AdminRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CaracterRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CaracterRepository.java deleted file mode 100644 index b71f2a7..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CaracterRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Caracter; - -public interface CaracterRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CommentaryRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CommentaryRepository.java deleted file mode 100644 index 6074b0d..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/CommentaryRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.wfwebapi.repository; - -import java.util.List; -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Commentary; - -public interface CommentaryRepository extends JpaRepository { - List findByQuote_Id(Long quoteId); -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/DailyQuoteRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/DailyQuoteRepository.java deleted file mode 100644 index e33bd7d..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/DailyQuoteRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.DailyQuote; - -public interface DailyQuoteRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/FavoriteRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/FavoriteRepository.java deleted file mode 100644 index b20de5f..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/FavoriteRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.wfwebapi.repository; - -import java.util.List; -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Favorite; -import com.example.wfwebapi.model.FavoriteId; - -public interface FavoriteRepository extends JpaRepository { - List findByUser_Id(Long userId); -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/ImageRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/ImageRepository.java deleted file mode 100644 index ba74413..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/ImageRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Image; - -public interface ImageRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuestionRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuestionRepository.java deleted file mode 100644 index 7fb7b75..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuestionRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Question; - -public interface QuestionRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuizQuestionRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuizQuestionRepository.java deleted file mode 100644 index cd2e861..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuizQuestionRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.QuizQuestion; -import com.example.wfwebapi.model.QuizQuestionId; - -public interface QuizQuestionRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuoteRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuoteRepository.java deleted file mode 100644 index a4cd27d..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/QuoteRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Quote; - -public interface QuoteRepository extends JpaRepository { -} - diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/RecordQuizRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/RecordQuizRepository.java deleted file mode 100644 index 885e793..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/RecordQuizRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.RecordQuiz; -import com.example.wfwebapi.model.RecordQuizId; - -public interface RecordQuizRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/SourceRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/SourceRepository.java deleted file mode 100644 index 8f55207..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/SourceRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.wfwebapi.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.Source; - -public interface SourceRepository extends JpaRepository { -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/UserRepository.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/UserRepository.java deleted file mode 100644 index a238593..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/repository/UserRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.wfwebapi.repository; - -import java.util.Optional; -import org.springframework.data.jpa.repository.JpaRepository; -import com.example.wfwebapi.model.User; - -public interface UserRepository extends JpaRepository { - Optional findByUsername(String username); - Optional findByEmail(String email); - boolean existsByUsername(String username); - boolean existsByEmail(String email); -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtAuthenticationFilter.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtAuthenticationFilter.java deleted file mode 100644 index 391798a..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtAuthenticationFilter.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.wfwebapi.security; - -import com.example.wfwebapi.exception.UnauthorizedException; -import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import java.io.IOException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.web.filter.OncePerRequestFilter; - -public class JwtAuthenticationFilter extends OncePerRequestFilter { - - private final JwtTokenProvider tokenProvider; - - public JwtAuthenticationFilter(JwtTokenProvider tokenProvider) { - this.tokenProvider = tokenProvider; - } - - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) - throws ServletException, IOException { - - String header = request.getHeader("Authorization"); - if (header == null || !header.startsWith("Bearer ")) { - response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Token manquant ou invalide"); - return; - } - - String token = header.substring(7); - if (!tokenProvider.validateToken(token)) { - response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Token invalide ou expiré"); - return; - } - - filterChain.doFilter(request, response); - } -} diff --git a/WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtTokenProvider.java b/WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtTokenProvider.java deleted file mode 100644 index 562518f..0000000 --- a/WF-WEBAPI/src/main/java/com/example/wfwebapi/security/JwtTokenProvider.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.example.wfwebapi.security; - -import io.jsonwebtoken.*; -import io.jsonwebtoken.security.Keys; -import java.security.Key; -import java.util.Date; -import org.springframework.stereotype.Component; - -@Component -public class JwtTokenProvider { - - // Clé secrète (à stocker en sécurité dans une variable d'environnement en production) - private final Key secretKey = Keys.hmacShaKeyFor("MaCléSuperSecrètePourJWTQueJeDoisChanger".getBytes()); - // Durée de validité du token (par exemple 1h) - private final long validityInMilliseconds = 3600000; - - // Création du token - public String createToken(String username) { - Claims claims = Jwts.claims().setSubject(username); - Date now = new Date(); - Date validity = new Date(now.getTime() + validityInMilliseconds); - - return Jwts.builder() - .setClaims(claims) - .setIssuedAt(now) - .setExpiration(validity) - .signWith(secretKey, SignatureAlgorithm.HS256) - .compact(); - } - - // Validation du token - public boolean validateToken(String token) { - try { - Jws claims = Jwts.parserBuilder().setSigningKey(secretKey).build().parseClaimsJws(token); - return !claims.getBody().getExpiration().before(new Date()); - } catch (JwtException | IllegalArgumentException e) { - return false; - } - } - - // Récupération du nom d'utilisateur depuis le token - public String getUsername(String token) { - return Jwts.parserBuilder().setSigningKey(secretKey).build().parseClaimsJws(token).getBody().getSubject(); - } -}