1.在服务器端我们可以通过Spring security提供的注解对方法来进行权限控制。

Spring Security在方法的权限控制上支持三种类型的注解,JSR-250注解、@Secured注解和支持表达式的注解,这三种注解默认都是没有启用的,需要单独通过global-method-security元素的对应属性进行启用

1>.JSR-250注解

配置文件开启注解

<security:global-method-security jsr250-annotations="enabled"/>

@RolesAllowed表示访问对应方法时所应该具有的角色示例:
@RolesAllowed({"USER", "ADMIN"}) 该方法只要具有"USER", "ADMIN"任意一种权限就可以访问。这里可以省略前缀ROLE_,实际的权限可能是ROLE_ADMIN 只有带有ADMIN角色的用户才能访问
@RequestMapping("/findAllProduct")
@RolesAllowed("ADMIN")
public ModelAndView findAllProduct(int page, int size) {
ModelAndView mode = new ModelAndView();
List<Product> productList = productService.findAll(page,size);
PageInfo pageInfo = new PageInfo(productList);
mode.addObject("pageInfo", pageInfo);
mode.setViewName("product-list");
return mode;
}

 2>@Secured注解

  配置文件开启注解
 <security:global-method-security secured-annotations="enabled"/>
@Secured注解标注的方法进行权限控制的支持,其值默认为disabled。
 只有带有ADMIN角色的用户才能访问
@RequestMapping("/findAllProduct")
@Secured("ADMIN")
public ModelAndView findAllProduct(int page, int size) {
ModelAndView mode = new ModelAndView();
List<Product> productList = productService.findAll(page,size);
PageInfo pageInfo = new PageInfo(productList);
mode.addObject("pageInfo", pageInfo);
mode.setViewName("product-list");
return mode;
}

2 页面端标签控制权限
在jsp页面中我们可以使用spring security提供的权限标签来进行权限控制 1>maven导入
<spring.security.version>5.0.1.RELEASE</spring.security.version>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
<version>version</version>
</dependency>

2>页面标签导入
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
  
  标签: authentication 获得对象的属性
<security:authentication property="" htmlEscape="" scope="" var=""/>
  
  获得当前页面对象的名字
  <sec:authentication property="principal.username"/>   
  标签:authorize 隐藏某一个对象
  当前用户携带的角色不是ADMIN是隐藏该标签
      <sec:authorize access="hasRole('ADMIN')">
<a
href="${pageContext.request.contextPath}/User/findAllUser">
<i class="fa fa-circle-o"></i> 用户管理
</a>
</sec:authorize>


TZ_10_spring-sucrity 服务器和页面的权限控制的更多相关文章

  1. vue中如何实现后台管理系统的权限控制

    vuejs单页应用的权限管理实践 一.前言 在广告机项目中,角色的权限管理是卡了挺久的一个难点.首先我们确定的权限控制分为两大部分,其中根据粒的大小分的更细: 接口访问的权限控制 页面的权限控制 菜单 ...

  2. angularjs中的页面访问权限设置

    11月在赶一个项目,这阵子比较忙,挤挤时间更一篇博客吧,如标题所述说说在ng中页面访问权限控制的问题,水平有限各位看官见谅: 在以往的项目中,前后端常见的配合方式是前端提供页面和ui加一点DuangD ...

  3. 基于MVC4+EasyUI的Web开发框架形成之旅--权限控制

    我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大概介绍了基于MVC的Web开发框架的权限控制总体思路.其中的权限控制就是分为“用户登录身份验证” ...

  4. 在ASP.NET MVC中实现基于URL的权限控制

    本示例演示了在ASP.NET MVC中进行基于URL的权限控制,由于是基于URL进行控制的,所以只能精确到页.这种权限控制的优点是可以在已有的项目上改动极少的代码来增加权限控制功能,和项目本身的耦合度 ...

  5. JAVAEE——BOS物流项目11:在realm中授权、shiro的方法注解权限控制、shiro的标签权限控制、总结shiro的权限控制方式、权限管理

    1 学习计划 1.在realm中进行授权 2.使用shiro的方法注解方式权限控制 n 在spring文件中配置开启shiro注解支持 n 在Action方法上使用注解 3.★使用shiro的标签进行 ...

  6. 基于MVC4+EasyUI的Web开发框架形成之旅(7)--权限控制

    我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大概介绍了基于MVC的Web开发框架的权限控制总体思路.其中的权限控制就是分为“用户登录身份验证” ...

  7. Gitolite 权限控制

    官网 http://gitolite.com/gitolite/index.html 安装配置 http://gitolite.com/gitolite/install/ 傻瓜安装教程 http:// ...

  8. shiro权限控制入门

    一:权限控制两种主要方式 粗粒度 URL 级别权限控制和细粒度方法级别权限控制 1.粗粒度 URL 级别权限控制 可以基于 Filter 实现在数据库中存放 用户.权限.访问 URL 对应关系, 当前 ...

  9. ASP.NET MVC 和 WebForm的权限控制

    今天主要讲一下对于ASP.NET的页面级权限控制 数据结构:用户表.角色表.权限表.角色权限派生表 为用户添加权限的数据配置后, 自定义类对MVC继承Controller 对其内置方法Initiali ...

随机推荐

  1. JS获取url参数,修改url参数

    function getURL(){ var args = {}; var query = location.search.substring(1); //获得了当前链接的中?号后的参数 var pa ...

  2. No packages marked for update

    问题:用yum安装docker,更新yum存储时,报以下错误,导致yum坏了 [root@localhost yum.repos.d]# vi docker.repo [root@localhost ...

  3. SG函数模板(洛谷2197nim游戏

    #include <iostream> #include <cstdio> #include <queue> #include <algorithm> ...

  4. 使用Cookie实现用户商品历史浏览记录

    该功能分为四个模块: 1. 获取所有商品并以链接的形式显示 out.write("网站商品: <br/>"); Map<String, Book> book ...

  5. csscomb配置文件说明

    { "always-semicolon": true, // 总是显示分号 "block-indent": " ", // 代码块缩进,可以 ...

  6. 关于Cadence SPB 16.6 破解的一些关键步骤

    网上搜索到的破解方法,一般来说流程都是没有什么大问题的.较详细的一个破解流程可参照: http://www.mr-wu.cn/cadence-orcad-allegro-spb-16-6-instal ...

  7. Python-线程(3)-协程

    目录 Event事件 线程池 进程池 回调函数 高性能爬取梨视频 协程 yield保存状态 gevent模块 协程的目的 TCP服务端单线程下实现并发 Event事件 event 事件用来控制线程的执 ...

  8. solusvm 主控端迁移

    难点在于solusvm被控端已经开了小鸡的情况. 备份数据库: #!/bin/sh ## Vars CONF=/usr/local/solusvm/includes/solusvm.conf FILE ...

  9. vue alert插件(标题为图片)(自写)

    <template> <div class="modelSelf"> <div class="model" @click=&quo ...

  10. 图解SQL的Join

    原文地址:http://coolshell.cn/articles/3463.html 对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的 ...