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。デフォルトのログインフォームが表示されます。
{空} 2。 「
mkyong
」がログインしている場合、「
mkyong
」は「
ROLE__USER
」であるため、「
http 403はアクセス拒否ページ
」と表示されます。
{空} 3。ユーザー ”
eclipse
“がログインしている場合、 ”
eclipse
“は ”
ROLE__ADMIN
“であるため ”
hello.jsp
“が表示されます。
-
403ページをカスタマイズ** デフォルトの403ページは醜いです、この例を読んでください – リンク://spring-security/customize-http-403-access-denied-page-in-spring-security/[http 403アクセス拒否ページをカスタマイズする方法春の安全性]。
ソースコードをダウンロードする
ダウンロードする –
Spring-Security-AccessControl-例.zip
(10 KB)
参考文献
セキュリティ許可文書]。
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html
[Spring
セキュリティエルアクセスコントロールドキュメント]