From cc658b84277647a18e71013f3081517d324bd329 Mon Sep 17 00:00:00 2001 From: Parpaillax Date: Wed, 24 Apr 2024 14:05:10 +0200 Subject: [PATCH] interceptor credit user --- .../fr/eni/enchere/controllers/MvcConfig.java | 17 +++++++++ .../enchere/interceptor/UserInterceptor.java | 35 +++++++++++++++++++ .../UserServiceInterceptorAppConfig.java | 13 +++++++ src/main/resources/templates/modele-page.html | 8 ++--- 4 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 src/main/java/fr/eni/enchere/interceptor/UserInterceptor.java create mode 100644 src/main/java/fr/eni/enchere/interceptor/UserServiceInterceptorAppConfig.java diff --git a/src/main/java/fr/eni/enchere/controllers/MvcConfig.java b/src/main/java/fr/eni/enchere/controllers/MvcConfig.java index 43263e9..7d9d7ea 100644 --- a/src/main/java/fr/eni/enchere/controllers/MvcConfig.java +++ b/src/main/java/fr/eni/enchere/controllers/MvcConfig.java @@ -1,12 +1,29 @@ package fr.eni.enchere.controllers; +import fr.eni.enchere.interceptor.UserInterceptor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class MvcConfig implements WebMvcConfigurer { + + private final UserInterceptor userInterceptor; + + @Autowired + public MvcConfig(UserInterceptor userInterceptor) { + this.userInterceptor = userInterceptor; + } + public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/login").setViewName("security/login"); } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(userInterceptor); + } + } diff --git a/src/main/java/fr/eni/enchere/interceptor/UserInterceptor.java b/src/main/java/fr/eni/enchere/interceptor/UserInterceptor.java new file mode 100644 index 0000000..f7f33bf --- /dev/null +++ b/src/main/java/fr/eni/enchere/interceptor/UserInterceptor.java @@ -0,0 +1,35 @@ +package fr.eni.enchere.interceptor; + +import fr.eni.enchere.bll.UserService; +import fr.eni.enchere.bo.UserProfil; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +@Component +public class UserInterceptor implements HandlerInterceptor { + + private final UserService userService; + + @Autowired + public UserInterceptor(UserService userService) { + this.userService = userService; + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + if (modelAndView != null && modelAndView.getModelMap() != null) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + if (authentication != null && authentication.isAuthenticated() && !authentication.getName().equals("anonymousUser")) { + UserProfil user = this.userService.utilisateurByName(authentication.getName()); + System.out.println(user); + modelAndView.getModelMap().addAttribute("user", user.getCredit()); + } + } + } +} diff --git a/src/main/java/fr/eni/enchere/interceptor/UserServiceInterceptorAppConfig.java b/src/main/java/fr/eni/enchere/interceptor/UserServiceInterceptorAppConfig.java new file mode 100644 index 0000000..b6fb169 --- /dev/null +++ b/src/main/java/fr/eni/enchere/interceptor/UserServiceInterceptorAppConfig.java @@ -0,0 +1,13 @@ +//package fr.eni.enchere.interceptor; +// +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +// +//public class UserServiceInterceptorAppConfig implements WebMvcConfigurer { +// +// @Override +// public void addInterceptors(InterceptorRegistry registry) { +// registry.addInterceptor(new UserInterceptor()); +// } +//} diff --git a/src/main/resources/templates/modele-page.html b/src/main/resources/templates/modele-page.html index 5bcd680..baef098 100644 --- a/src/main/resources/templates/modele-page.html +++ b/src/main/resources/templates/modele-page.html @@ -13,10 +13,10 @@ Logo - - - - +
+

Mes crédits :

+

+