Пример контроля доступа Spring Security

Пример контроля доступа Spring Security

В Spring Security контроль доступа или авторизацию легко реализовать. Смотрите следующий фрагмент кода:

  
    
  

Это означает, что только пользователю с полномочиями «ROLE_ADMIN» разрешен доступ к URI/admin *. Если неавторизованный пользователь попытается получить к нему доступ, отобразится «http 403 access denied page».

Spring EL + Access Control
См. эквивалентную версию в Spring EL. Он более гибкий и содержит много полезных готовых функций, таких как «hasIpAddress», обязательно проверьте все доступные el-функции в этомofficial Spring el access control documentation.

  
    
  

В этом руководстве мы покажем вам, как использовать Spring Security для реализации контроля доступа к URL-адресу «/admin *», где только пользователь, авторизованный с помощью «ROLE_ADMIN», может получить доступ к этой странице.

1. Зависимости проекта

Контроль доступа включен в основной Spring Security Jar. Обратитесь к этомуSpring Security hello world example для получения списка необходимых зависимостей.

2. Spring MVC

Spring MVC контроллер и вернуть «привет» вид, это должно быть само за себя.

Файл: 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";

    }

}

Файл: hello.jsp

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


    

Message : ${message}

" > Logout

3. Spring Security

Полная конфигурация безопасности Spring, только пользователю «eclipse» разрешен доступ к странице «/admin».



    
        
        
    

    
      
       
        
        
       
      
    

4. Demo

1. Форма входа по умолчанию отображается.

demo page - access control

2. Если пользователь «example» вошел в систему, отобразится «http 403 is access denied page», потому что «example» - это «ROLE_USER».

demo page - access denied

3. Если пользователь «eclipse» вошел в систему, отобразится «hello.jsp», потому что «eclipse» - это «ROLE_ADMIN».

demo page - success

Customize 403 page
Страница 403 по умолчанию уродливая, прочтите этот пример -How to customize http 403 access denied page in spring security.

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

Скачать -Spring-Security-Access-Control-Example.zip (10 КБ)