Пример Spring Spring Hello World

Весенний Привет пример мира

В этом руководстве мы покажем вам, как интегрировать Spring Security с веб-приложением Spring MVC для обеспечения доступа по URL. После реализации Spring Security для доступа к содержимому страницы «администратор» пользователям необходимо ввести правильные «имя пользователя» и «пароль».

Используемые технологии:

  1. Весна 3.2.8. ВЫПУСК

  2. Spring Security 3.2.3.RELEASE

  3. Затмение 4.2

  4. JDK 1.6

  5. Maven 3

Note
Spring Security 3.0 требует Java 5.0 Runtime Environment или выше

1. Проект Демо

2. Структура каталогов

Просмотрите окончательную структуру каталогов этого руководства.

spring-security-helloworld-directory

3. Зависимости Spring Security

Чтобы использовать безопасность Spring, вам нужныspring-security-web иspring-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 Web Application

Простой контроллер:

  1. Если URL =/welcome или/, вернуть страницу приветствия.

  2. Если URL =/admin, вернуть страницу администратора.

Позже мы покажем вам, как использовать Spring Security для защиты URL-адреса «/ admin» с помощью формы входа пользователя.

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;

    }

}

Две страницы 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: аутентификация пользователя

Создайте XML-файл Spring Security.

spring-security.xml



    
        
    

    
      
        
        
        
      
    

Он сообщает, что только пользователь «example» может получить доступ к URL-адресу/admin.

6. Интегрировать Spring Security

Чтобы интегрировать безопасность Spring с веб-приложением Spring MVC, просто объявляйтеDelegatingFilterProxy в качестве фильтра сервлета для перехвата любого входящего запроса.

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

Вот и все, но подождите ... где форма входа? Не беспокойтесь, если вы не определите какую-либо пользовательскую форму входа, Spring автоматически создаст простую форму входа.

Custom Login Form
Прочтите этот «http://www.example.com/spring-security/spring-security-form-login-example/[Spring Security form login example]», чтобы понять, как создать настраиваемая форма входа в Spring Security.

1. Страница приветствия -http://localhost:8080/spring-security-helloworld-xml/welcome

spring-security-helloworld-welcome

2. Попытайтесь получить доступ к странице/admin, Spring Security перехватит запрос и перенаправит на/spring_security_login, и отобразится предопределенная форма входа.

spring-security-helloworld-login

3. Если имя пользователя и пароль неверны, будут отображаться сообщения об ошибках, и Spring будет перенаправлять на этот URL/spring_security_login?login_error.

spring-security-helloworld-login-error

4. Если имя пользователя и пароль верны, Spring перенаправит запрос на исходный запрошенный URL-адрес и отобразит страницу.

spring-security-helloworld-admin

Скачать исходный код

Скачать -spring-security-helloworld-xml.zip (9 КБ)