web:framework:spring:security

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:08] – [Mise en place CSRF] jcheronweb:framework:spring:security [2023/12/05 12:12] (Version actuelle) – [Déclaration du service] jcheron
Ligne 238: Ligne 238:
 </sxh> </sxh>
  
 +=== Récupération Utilisateur connecté ===
 +Récupération de l'utilisateur connecté en tant que **ModelAttribute** pour utilisation dans les vues :
 +
 +<sxh java>
 +@ControllerAdvice
 +public class MainAdvice {
 +    @ModelAttribute("activeUser")
 +    public User activeUser(Authentication auth) {
 +        return (auth == null) ? null : (User) auth.getPrincipal();
 +    }
 +}
 +</sxh>
 ==== Login form personnalisée ==== ==== Login form personnalisée ====
  
Ligne 323: Ligne 335:
     static RoleHierarchy roleHierarchy() {     static RoleHierarchy roleHierarchy() {
         RoleHierarchyImpl hierarchy = new RoleHierarchyImpl();         RoleHierarchyImpl hierarchy = new RoleHierarchyImpl();
-        hierarchy.setHierarchy("ROLE_ADMIN > ROLE_USER");+        hierarchy.setHierarchy("ROLE_ADMIN > ROLE_REDACTOR\n ROLE_REDACTOR > ROLE_USER");
         return hierarchy;         return hierarchy;
     }     }
Ligne 363: Ligne 375:
                                     )                                     )
                                     .permitAll();                                     .permitAll();
-                            req.requestMatchers(AntPathRequestMatcher.antMatcher("/admin/**")).hasRole("ROLE_ADMIN"); // (2)+                            req.requestMatchers(AntPathRequestMatcher.antMatcher("/admin/**")).hasRole("ADMIN"); // (2)
                             req.requestMatchers(AntPathRequestMatcher.antMatcher("/user/**")).hasAuthority("USER"); // (3)                             req.requestMatchers(AntPathRequestMatcher.antMatcher("/user/**")).hasAuthority("USER"); // (3)
                             req.requestMatchers(AntPathRequestMatcher.antMatcher("/staff/**")).hasAnyAuthority("USER", "ADMIN", "MANAGER"); // (4)                             req.requestMatchers(AntPathRequestMatcher.antMatcher("/staff/**")).hasAnyAuthority("USER", "ADMIN", "MANAGER"); // (4)
Ligne 376: Ligne 388:
 ^Méthode ^ Description ^ ^Méthode ^ Description ^
 | 1 - **permitAll** | Pas de sécurisation sur les urls commençant par **/css**, **/assets**, **/login**. | | 1 - **permitAll** | Pas de sécurisation sur les urls commençant par **/css**, **/assets**, **/login**. |
-| 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'authority **USER** peuvent accéder aux urls commençant par **/user**. | | 3 - **hasAuthority** | Les utilisateurs ayant l'authority **USER** peuvent accéder aux urls commençant par **/user**. |
 | 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 500: Ligne 512:
 </form> </form>
 </sxh> </sxh>
 +
 +
 +<wrap important>Attention à la route **/logout**, elle devra être accédée uniquement via un POST, qui devra inclure le token CSRF.</wrap>
  
  
  • web/framework/spring/security.1701770915.txt.gz
  • Dernière modification : il y a 6 mois
  • de jcheron