Exemple de contrôle d’accès Spring Security

Exemple de contrôle d'accès Spring Security

Dans Spring Security, le contrôle d'accès ou l'autorisation est facile à mettre en œuvre. Voir l'extrait de code suivant:

  
    
  

Cela signifie que seul l'utilisateur avec les droits «ROLE_ADMIN» est autorisé à accéder à l'URI/admin *. Si un utilisateur non autorisé tente d'y accéder, un «http 403 access denied page» s'affiche.

Spring EL + Access Control
Voir la version équivalente dans Spring EL. Il est plus flexible et contient de nombreuses fonctions prêtes à l'emploi utiles comme «hasIpAddress», assurez-vous de vérifier toutes les fonctions el disponibles dans ceofficial Spring el access control documentation.

  
    
  

Dans ce tutoriel, nous vous montrons comment utiliser Spring Security pour implémenter le contrôle d'accès à l'url «/admin *», où seul l'utilisateur autorisé avec «ROLE_ADMIN» est autorisé à accéder à cette page.

1. Dépendances du projet

Le contrôle d'accès est inclus dans le bocal principal de Spring Security. Reportez-vous à ceSpring Security hello world example pour la liste des dépendances requises.

2. Spring MVC

Contrôleur MVC de printemps et retournez une vue "bonjour", cela devrait être explicite.

Fichier: WelcomeController.java

package com.example.common.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class WelcomeController {

    @RequestMapping(value = "/admin", method = RequestMethod.GET)
    public String welcomeAdmin(ModelMap model) {

        model.addAttribute("message", "Spring Security - ROLE_ADMIN");
        return "hello";

    }

}

Fichier: hello.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


    

Message : ${message}

" > Logout

3. Sécurité de printemps

Configuration de sécurité complète de Spring, seul l'utilisateur «eclipse» est autorisé à accéder à la page «/admin».



    
        
        
    

    
      
       
        
        
       
      
    

4. Demo

1. Le formulaire de connexion par défaut s'affiche.

demo page - access control

2. Si l'utilisateur «example» est connecté, «http 403 is access denied page» s'affiche, car «example» est «ROLE_USER».

demo page - access denied

3. Si l'utilisateur «eclipse» est connecté, «hello.jsp» s'affiche, car «eclipse» est «ROLE_ADMIN».

demo page - success

Customize 403 page
La page 403 par défaut est moche, lisez cet exemple -How to customize http 403 access denied page in spring security.

Télécharger le code source

Téléchargez-le -Spring-Security-Access-Control-Example.zip (10 Ko)