Spring Security Hallo Weltbeispiel

Spring Security Hallo Weltbeispiel

In diesem Tutorial zeigen wir Ihnen, wie Sie Spring Security in eine Spring MVC-Webanwendung integrieren, um einen URL-Zugriff zu sichern. Nach der Implementierung von Spring Security müssen Benutzer den richtigen Benutzernamen und das richtige Kennwort eingeben, um auf den Inhalt einer Administratorseite zugreifen zu können.

Verwendete Technologien:

  1. Feder 3.2.8.FREIGABE

  2. Federsicherheit 3.2.3.FREIGABE

  3. Eclipse 4.2

  4. JDK 1.6

  5. Maven 3

Note
Spring Security 3.0 erfordert Java 5.0 Runtime Environment oder höher

1. Projekt Demo

2. Verzeichnisaufbau

Überprüfen Sie die endgültige Verzeichnisstruktur dieses Lernprogramms.

spring-security-helloworld-directory

3. Spring-Sicherheitsabhängigkeiten

Um die Spring-Sicherheit zu verwenden, benötigen Siespring-security-web undspring-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. Spring MVC-Webanwendung

Ein einfacher Controller:

  1. Wenn URL =/welcome oder/, geben Sie die Hallo-Seite zurück.

  2. Wenn URL =/admin, wird die Administrationsseite zurückgegeben.

Später zeigen wir Ihnen, wie Sie Spring Security verwenden, um die URL „/ admin“ mit einem Benutzeranmeldeformular zu sichern.

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;

    }

}

Zwei JSP-Seiten.

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: Benutzerauthentifizierung

Erstellen Sie eine Spring Security XML-Datei.

spring-security.xml



    
        
    

    
      
        
        
        
      
    

Es wird angegeben, dass nur das "Beispiel" des Benutzers auf die URL von/adminzugreifen darf.

6. Spring Security integrieren

Um die Spring-Sicherheit in eine Spring MVC-Webanwendung zu integrieren, deklarieren Sie einfachDelegatingFilterProxy als Servlet-Filter, um eingehende Anforderungen abzufangen.

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

Das ist alles, aber warte ... wo ist das Anmeldeformular? Keine Sorge, wenn Sie kein benutzerdefiniertes Anmeldeformular definieren, erstellt Spring automatisch ein einfaches Anmeldeformular.

Custom Login Form
Lesen Sie diesen Abschnitt „http://www.example.com/spring-security/spring-security-form-login-example/[Spring Security - Anmeldebeispiel]“, um zu verstehen, wie Sie erstellen ein benutzerdefiniertes Anmeldeformular in Spring Security.

1. Willkommensseite -http://localhost:8080/spring-security-helloworld-xml/welcome

spring-security-helloworld-welcome

2. Wenn Sie versuchen, auf die Seite von/adminzuzugreifen, fängt Spring Security die Anforderung ab und leitet sie an/spring_security_login weiter. Ein vordefiniertes Anmeldeformular wird angezeigt.

spring-security-helloworld-login

3. Wenn Benutzername und Passwort falsch sind, werden Fehlermeldungen angezeigt und Spring leitet zu dieser URL/spring_security_login?login_error um.

spring-security-helloworld-login-error

4. Wenn Benutzername und Kennwort korrekt sind, leitet Spring die Anforderung an die ursprünglich angeforderte URL weiter und zeigt die Seite an.

spring-security-helloworld-admin

Quellcode herunterladen

Laden Sie es herunter -spring-security-helloworld-xml.zip (9 KB)