文档章节

Spring Security教程之Spring Security实现访问控制

爱吃猫的小萌鱼
 爱吃猫的小萌鱼
发布于 2014/01/23 23:43
字数 536
阅读 296
收藏 1

在Spring Security中,实现访问控制或权限控制是非常容易实现的,请看下面的代码片段:

1
2
3
  <http auto-config="true">
    <intercept-url pattern="/admin*" access="ROLE_ADMIN" />
  </http>

它的意思是,只有“ROLE_ADMIN”权限的用户可以允许访问“ /admin*”路径,如果没有权限的用户访问则会提示“http 403 access denied page”错误。

本次教程中,我们像你展示只有“ROLE_ADMIN”权限的用户可以访问“/admin*”

1.项目依赖

访问控制需要Spring Security的核心包,请参考Spring+Spring Security+Maven 实现的一个Hello World例子 列出的jar

2.Spring MVC

Spring MVC做控制器并返回一个“hello”视图,这个你应该可以理解的。

WelcomeController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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";
  
    }
  
}

 hello.jsp

1
2
3
4
5
6
7
8
<%@ taglib prefix="c" uri=" http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
    <h3>Message : ${message}</h3>
  
    <a href="<c:url value="j_spring_security_logout" />" > Logout</a>
</body>
</html>

3.Spring Security

一下是Sprign Security全部的配置文件,只允许“eclipse”用户可以访问“/hello”页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    xsi:schemaLocation=" http://www.springframework.org/schema/beans
  
    <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="it161" password="password" authorities="ROLE_USER" />
        <user name="eclipse" password="password" authorities="ROLE_ADMIN" />
       </user-service>
      </authentication-provider>
    </authentication-manager>
  
</beans:beans>

4.示例

http://localhost:8080/SpringMVC/admin

1.默认的登陆页面如下所示:

2.如果用“it161”登陆时,就会提示“http 403 is access denied page”,因为it161是“ROLE_USER”权限

3.如果用“eclipse”登陆的话,“hello.jsp”就会展示,因为“eclipse”是“ROLE_ADMIN“权限。

默认的403页面非常丑陋,请可以阅读本人自定义你的403页面:Spring Security教程-Spring Security实现访问控制

原创文章,转载请注明出处:http://www.it161.com/article/javaDetail?articleid=140113230945

更多原创内容,请访问:http://www.it161.com/

© 著作权归作者所有

爱吃猫的小萌鱼
粉丝 1
博文 16
码字总数 10296
作品 0
东城
私信 提问
使用 Spring Security 实现基本认证

1. 概述 本教程展示了如何用spring创建、配置和自定义Basic Authentication. 我们将把我们的教程构建在简单的 Spring MVC example例子之上, 然后使用Spring Security提供的Basic Auth机制来保...

oschina
2013/06/04
4.8K
0
Spring Security总结

简介 Spring Security是一个强大的和高度可定制的身份验证和访问控制框架,它的前身是 Acegi Security。Spring Security着重于为Java应用程序提供身份验证和授权。提供了一组可以在Spring应用...

asdf08442a
2018/09/28
0
1
《Spring Boot极简教程》第16章 Spring Boot安全集成Spring Security

第16章 Spring Boot安全集成Spring Security 开发Web应用,对页面的安全控制通常是必须的。比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop...

程序员诗人
2017/04/17
0
0
精通Spring Boot——第十六篇:初探Spring Security,使用Http Basic认证

说明 本文以及接下来有关spring security 的文章, 基于Spring Boot 2.1.0 RELEASE , Spring Security 5.1.2RELEASE 简单介绍Spring Security Spring Security是当今非常流行的,基于Spring提...

liu浪诗人
2018/11/25
0
3
Spring+Spring Security+Maven 实现的一个Hello World例子

Spring Security允许开发人员轻松地将安全功能集成到J2EE Web应用程序中,它通过Servlet过滤器实现“用户自定义”安全检查。 在本教程中,我们将向您展示如何在Spring MVC中集成Spring Secu...

爱吃猫的小萌鱼
2014/01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hive(五)——Sqoop导入导出数据

一、

ittzg
48分钟前
3
0
抽象同步队列AQS——AbstractQueuedSynchronizer锁详解

AQS——锁的底层支持 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资...

须臾之余
今天
2
0
springboot配置百度UEditor 富文本详解

富文本简介 UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 准备工作 ueditor需要单独文...

wotrd
昨天
3
0
mysql 5.7之my.cnf配置大全

[client]port = 3306socket = /tmp/mysql.sock[mysqld]###############################基础设置######################################Mysql服务的唯一编号 每个mysql服务...

Online_Reus
昨天
2
0
MAVEN打包时引入外部链接的包

1.项目引入了ORACLE的jar包,MAVEN配置如下 2.打jar包的时候需要指定下main入口函数mainClass <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> ......

Cobbage
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部