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

  <http auto-config="true">
    <intercept-url pattern="/admin** " access="ROLE__ADMIN"/>
  </http>

つまり、「

ROLE__ADMIN

」の権限を持つユーザーのみがURI

/admin


にアクセスできます。権限のないユーザーがアクセスしようとすると、「

http 403アクセス拒否ページ** 」が表示されます。

  <http auto-config="true" use-expressions="true">
    <intercept-url pattern="/admin** " access="hasRole('ROLE__ADMIN')"/>
  </http>

このチュートリアルでは、Spring Securityを使用して ”

/admin


“というURLへのアクセス制御を実装する方法を説明します。ここでは、

ROLE__ADMIN ** で許可されたユーザーのみがこのページにアクセスできます。

プロジェクトの依存関係

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

2. Spring MVC

SpringのMVCコントローラと “hello”ビューを返す、それは自明である必要があります。


File:WelcomeController.java

package com.mkyong.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";

    }

}


File:hello.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-2836379775501347"
     data-ad-slot="8821506761"
     data-ad-format="auto"
     data-ad-region="mkyongregion"></ins>
<script>
(adsbygoogle = window.adsbygoogle ||[]).push({});
</script><h2>Message : ${message}</h2>

    <a href="<c:url value="j__spring__security__logout"/>" > Logout</a>
</body>
</html>

3.春のセキュリティ

フルスプリングのセキュリティ設定では、ユーザー ”

eclipse

“のみが ”

/admin

“ページにアクセスできます。

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">

    <http auto-config="true">
        <intercept-url pattern="/admin** " access="ROLE__ADMIN"/>
        <logout logout-success-url="/admin"/>
    </http>

    <authentication-manager>
      <authentication-provider>
       <user-service>
        <user name="mkyong" password="password" authorities="ROLE__USER"/>
        <user name="eclipse" password="password" authorities="ROLE__ADMIN"/>
       </user-service>
      </authentication-provider>
    </authentication-manager>

</beans:beans>

4.デモ

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


デモページ - アクセスコントロール、title = "spring-security-access-control-login"

{空} 2。 「

mkyong

」がログインしている場合、「

mkyong

」は「

ROLE__USER

」であるため、「

http 403はアクセス拒否ページ

」と表示されます。


デモページ - アクセス拒否、タイトル= "spring-security-access-control-denied"

{空} 3。ユーザー ”

eclipse

“がログインしている場合、 ”

eclipse

“は ”

ROLE__ADMIN

“であるため ”

hello.jsp

“が表示されます。


デモページ - 成功、タイトル= "spring-security-access-control-success"

  • 403ページをカスタマイズ** デフォルトの403ページは醜いです、この例を読んでください – リンク://spring-security/customize-http-403-access-denied-page-in-spring-security/[http 403アクセス拒否ページをカスタマイズする方法春の安全性]。

ソースコードをダウンロードする

ダウンロードする –

Spring-Security-AccessControl-例.zip

(10 KB)