Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
web:framework:spring:security [2023/12/05 11:03] – [Login form personnalisée] jcheron | web:framework:spring:security [2023/12/05 12:12] (Version actuelle) – [Déclaration du service] jcheron | ||
---|---|---|---|
Ligne 238: | Ligne 238: | ||
</ | </ | ||
+ | === Récupération Utilisateur connecté === | ||
+ | Récupération de l' | ||
+ | |||
+ | <sxh java> | ||
+ | @ControllerAdvice | ||
+ | public class MainAdvice { | ||
+ | @ModelAttribute(" | ||
+ | public User activeUser(Authentication auth) { | ||
+ | return (auth == null) ? null : (User) auth.getPrincipal(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
==== Login form personnalisée ==== | ==== Login form personnalisée ==== | ||
Ligne 267: | Ligne 279: | ||
@Configuration | @Configuration | ||
@EnableWebSecurity | @EnableWebSecurity | ||
- | @EnableMethodSecurity( | ||
- | prePostEnabled = true, proxyTargetClass = true | ||
- | ) | ||
public class WebSecurityConfiguration { | public class WebSecurityConfiguration { | ||
Ligne 326: | Ligne 335: | ||
static RoleHierarchy roleHierarchy() { | static RoleHierarchy roleHierarchy() { | ||
RoleHierarchyImpl hierarchy = new RoleHierarchyImpl(); | RoleHierarchyImpl hierarchy = new RoleHierarchyImpl(); | ||
- | hierarchy.setHierarchy(" | + | hierarchy.setHierarchy(" |
return hierarchy; | return hierarchy; | ||
} | } | ||
Ligne 366: | Ligne 375: | ||
) | ) | ||
.permitAll(); | .permitAll(); | ||
- | req.requestMatchers(AntPathRequestMatcher.antMatcher("/ | + | req.requestMatchers(AntPathRequestMatcher.antMatcher("/ |
req.requestMatchers(AntPathRequestMatcher.antMatcher("/ | req.requestMatchers(AntPathRequestMatcher.antMatcher("/ | ||
req.requestMatchers(AntPathRequestMatcher.antMatcher("/ | req.requestMatchers(AntPathRequestMatcher.antMatcher("/ | ||
Ligne 379: | Ligne 388: | ||
^Méthode ^ Description ^ | ^Méthode ^ Description ^ | ||
| 1 - **permitAll** | Pas de sécurisation sur les urls commençant par **/css**, **/ | | 1 - **permitAll** | Pas de sécurisation sur les urls commençant par **/css**, **/ | ||
- | | 2 - **hasRole** | Les utilisateurs ayant le rôle **ROLE_ADMIN** peuvent accéder aux urls commençant par **/admin**. | | + | | 2 - **hasRole** | Les utilisateurs ayant le rôle **ADMIN** peuvent accéder aux urls commençant par **/admin**. | |
| 3 - **hasAuthority** | Les utilisateurs ayant l' | | 3 - **hasAuthority** | Les utilisateurs ayant l' | ||
| 4 - **hasAnyAuthority** | Les utilisateurs ayant l'une des authorities **USER**, **ADMIN** ou **MANAGER** peuvent accéder aux urls commençant par **/staff**. | | | 4 - **hasAnyAuthority** | Les utilisateurs ayant l'une des authorities **USER**, **ADMIN** ou **MANAGER** peuvent accéder aux urls commençant par **/staff**. | | ||
Ligne 476: | Ligne 485: | ||
La protection csrf est activée par défaut dans **Spring security** | La protection csrf est activée par défaut dans **Spring security** | ||
</ | </ | ||
+ | |||
+ | Mettre éventuellement une exception pour la console H2 (mais la console H2 n'a aucune raison d' | ||
+ | |||
+ | <sxh java; | ||
+ | req.csrf(csrf-> | ||
+ | </ | ||
=== Intégration dans les vues === | === Intégration dans les vues === | ||
Ligne 497: | Ligne 512: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | |||
+ | <wrap important> | ||