Spring Security bonjour exemple du monde

Exemple du monde bonjour de Spring Security

Dans ce didacticiel, nous vous montrerons comment intégrer Spring Security à une application Web Spring MVC pour sécuriser un accès URL. Après avoir implémenté Spring Security, pour accéder au contenu d'une page «admin», les utilisateurs doivent saisir le «nom d'utilisateur» et le «mot de passe» corrects.

Technologies utilisées:

  1. Spring 3.2.8.RELEASE

  2. Spring Security 3.2.3.RELEASE

  3. Eclipse 4.2

  4. JDK 1.6

  5. Maven 3

Note
Spring Security 3.0 nécessite Java 5.0 Runtime Environment ou supérieur

1. Démo du projet

2. Structure du répertoire

Consultez la structure finale des répertoires de ce didacticiel.

spring-security-helloworld-directory

3. Dépendances de sécurité de Spring

Pour utiliser la sécurité Spring, vous avez besoin despring-security-web etspring-security-config.

pom.xml

    
        1.6
        3.2.8.RELEASE
        3.2.3.RELEASE
        1.2
    

    

        
        
            org.springframework
            spring-core
            ${spring.version}
        

        
            org.springframework
            spring-web
            ${spring.version}
        

        
            org.springframework
            spring-webmvc
            ${spring.version}
        

        
        
            org.springframework.security
            spring-security-web
            ${spring.security.version}
        

        
            org.springframework.security
            spring-security-config
            ${spring.security.version}
        

        
        
            jstl
            jstl
            ${jstl.version}
        

    

4. Application Web Spring MVC

Un contrôleur simple:

  1. Si URL =/welcome ou/, renvoie la page d'accueil.

  2. Si URL =/admin, renvoie la page d'administration.

Plus tard, nous vous montrerons comment utiliser Spring Security pour sécuriser l'URL «/ admin» avec un formulaire de connexion utilisateur.

HelloController.java

package com.example.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {

    @RequestMapping(value = { "/", "/welcome**" }, method = RequestMethod.GET)
    public ModelAndView welcomePage() {

        ModelAndView model = new ModelAndView();
        model.addObject("title", "Spring Security Hello World");
        model.addObject("message", "This is welcome page!");
        model.setViewName("hello");
        return model;

    }

    @RequestMapping(value = "/admin**", method = RequestMethod.GET)
    public ModelAndView adminPage() {

        ModelAndView model = new ModelAndView();
        model.addObject("title", "Spring Security Hello World");
        model.addObject("message", "This is protected page!");
        model.setViewName("admin");

        return model;

    }

}

Deux pages JSP.

hello.jsp

<%@page session="false"%>


    

Title : ${title}

Message : ${message}

admin.jsp

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


    

Title : ${title}

Message : ${message}

Welcome : ${pageContext.request.userPrincipal.name} | " > Logout

mvc-dispatcher-servlet.xml



    

    
      
        /WEB-INF/pages/
      
      
        .jsp
      
    

5. Spring Security: Authentification des utilisateurs

Créez un fichier XML Spring Security.

spring-security.xml



    
        
    

    
      
        
        
        
      
    

Il indique que seul l'utilisateur «exemple» est autorisé à accéder à l'URL de/admin.

6. Intégrez Spring Security

Pour intégrer la sécurité Spring à une application Web Spring MVC, il suffit de déclarerDelegatingFilterProxy comme filtre de servlet pour intercepter toute demande entrante.

web.xml



    Spring MVC Application

    
    
        mvc-dispatcher
        org.springframework.web.servlet.DispatcherServlet
        
        1
    
    
        mvc-dispatcher
        /
    

    
        org.springframework.web.context.ContextLoaderListener
        
    

        
    
        contextConfigLocation
        
            /WEB-INF/spring-security.xml
        
    

    
    
        springSecurityFilterChain
        org.springframework.web.filter.DelegatingFilterProxy
        
    

    
        springSecurityFilterChain
        /*
    

7. Demo

C’est tout, mais attendez… où est le formulaire de connexion? Ne vous inquiétez pas, si vous ne définissez aucun formulaire de connexion personnalisé, Spring créera automatiquement un formulaire de connexion simple.

Custom Login Form
Lisez cet «http://www.example.com/spring-security/spring-security-form-login-example/[Exemple de connexion par formulaire de sécurité printanière]» pour comprendre comment créer un formulaire de connexion personnalisé dans Spring Security.

1. Page d'accueil -http://localhost:8080/spring-security-helloworld-xml/welcome

spring-security-helloworld-welcome

2. Essayez d'accéder à la page de/admin, Spring Security interceptera la demande et la redirigera vers/spring_security_login, et un formulaire de connexion prédéfini s'affiche.

spring-security-helloworld-login

3. Si le nom d'utilisateur et le mot de passe sont incorrects, des messages d'erreur seront affichés et Spring redirigera vers cette URL/spring_security_login?login_error.

spring-security-helloworld-login-error

4. Si le nom d'utilisateur et le mot de passe sont corrects, Spring redirigera la demande vers l'URL d'origine demandée et affichera la page.

spring-security-helloworld-admin

Télécharger le code source

Téléchargez-le -spring-security-helloworld-xml.zip (9 Ko)