春のセキュリティアクセス制御の例

Spring Securityのアクセス制御の例

Spring Securityでは、アクセス制御または承認を簡単に実装できます。 次のコードスニペットを参照してください。

  
    
  

つまり、「ROLE_ADMIN」の権限を持つユーザーのみがURI/admin *へのアクセスを許可されます。 許可されていないユーザーがアクセスしようとすると、「http 403 access denied page」が表示されます。

Spring EL + Access Control
SpringELの同等のバージョンを参照してください。 より柔軟性があり、「hasIpAddress」のような多くの便利な既製の関数が含まれています。このofficial Spring el access control documentationで使用可能なすべてのel関数を確認してください。

  
    
  

このチュートリアルでは、Spring Securityを使用してURL「/admin *」へのアクセス制御を実装する方法を示します。ここで、「ROLE_ADMIN」で許可されたユーザーのみがこのページへのアクセスを許可されます。

1. プロジェクトの依存関係

アクセス制御は、Spring Securityのコアjarに含まれています。 必要な依存関係のリストについては、このSpring Security hello world exampleを参照してください。

2. 春MVC

Spring MVCコントローラーと「hello」ビューを返す、それは一目瞭然です。

ファイル: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セキュリティ構成では、ユーザー「eclipse」のみが「/admin」ページへのアクセスを許可されます。



    
        
        
    

    
      
       
        
        
       
      
    

4. Demo

1. デフォルトのログインフォームが表示されます。

demo page - access control

2. ユーザー「example」がログインしている場合、「example」は「ROLE_USER」であるため、「http 403 is access denied page」が表示されます。

demo page - access denied

3. ユーザー「eclipse」がログインしている場合、「eclipse」は「ROLE_ADMIN」であるため、「hello.jsp」が表示されます。

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 KB)