概述

Authorization(授权):不难理解,授权就是用来控制当前訪问用户在訪问系统资源权限。

这个词也做证书的解释,从证书这个角度来讲,推断是否拥有对资源訪问的权限时。当前用户须要提供证书。

授权的核心

用户—角色—权限,以角色为中心。普通情况将权限分配给某个角色。然后给用户分配某个权限或是一组权限。

主要的流程

  • 当前用户调用isPermitted方法,携带着当前用户訪问资源的路径,通常是字符串或者是集合。

  • 调用自己定义的Realm类的重写方法 doGetAuthorizationInfo(PrincipalCollection principals) 这里将获取当前用户的权限数据。能够是.ini 文件,也能够是从数据库中查询。

  • 调用 AuthorizingRealm 类的 getAuthorizationInfo(PrincipalCollection principals) 方法得到角色的权限。内部最后通过 isPermitted(PrincipalCollection principals, String permission) 遍历验证。

看看最后验证权限的方法,也没有想象中那么复杂。

public boolean isPermitted(PrincipalCollection principals, String permission) {
assertRealmsConfigured();
for (Realm realm : getRealms()) {
if (!(realm instanceof Authorizer)) continue;
if (((Authorizer) realm).isPermitted(principals, permission)) {
return true;
}
}
return false;
}

Shiro三种方式实现授权

1:编写代码——在Java 代码中用像if 和else 块的结构运行授权检查。

  @RequestMapping(params = "myjsp")
public String home() {
Subject currentUser = SecurityUtils.getSubject();
if(currentUser.isPermitted("user.do? myjsp")){
return "my";
}else{
return "error/noperms";
}
}

2:JDK 的注解——你能够加入授权注解给你的 Java 方法。

@RequiresAuthentication要求当前用户已经认证通过,才干运行该方法

@RequiresGuest session中没有权限

@RequiresPermissions 要求当前用户认证后拥有多个权限

@RequiresRoles(“administrator”) 要求用户拥有(“administrator”)权限

@RequiresUser 要求subject为存在于当前系统中的用户

3:JSP/GSP 标签库——你能够控制基于角色和权限的JSP 或者GSP 页面输出。

<shiro:authenticated>
<a>已通过认证的用户才干</a>
</shiro:authenticated>

权限项目总结(四) shiro 授权的更多相关文章

  1. 将 Shiro 作为应用的权限基础 二:shiro 认证

    认证就是验证用户身份的过程.在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法.最常见的“实体/凭证”组合便是“用户名/密码”组合. 一. ...

  2. 项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示

    1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 ...

  3. Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  4. 在web项目中使用shiro(认证、授权)

    一.在web项目中实现认证 第一步,在web项目中导入shiro依赖的包 第二步,在web.xml中声明shiro拦截权限的过滤器 <filter> <filter-name> ...

  5. Shiro权限管理框架(四):深入分析Shiro中的Session管理

    其实关于Shiro的一些学习笔记很早就该写了,因为懒癌和拖延症晚期一直没有落实,直到今天公司的一个项目碰到了在集群环境的单点登录频繁掉线的问题,为了解决这个问题,Shiro相关的文档和教程没少翻.最后 ...

  6. shiro权限框架(四)

    4.1授权方式 Shiro 支持三种方式的授权 编程式:通过写 if/else 授权代码块完成: Subject = SecurityUtils.getSubject(); if(subject.ha ...

  7. 转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权

    原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...

  8. 在前后端分离的SpringBoot项目中集成Shiro权限框架

    参考[1].在前后端分离的SpringBoot项目中集成Shiro权限框架 参考[2]. Springboot + Vue + shiro 实现前后端分离.权限控制   以及跨域的问题也有涉及

  9. (转)shiro权限框架详解05-shiro授权

    http://blog.csdn.net/facekbook/article/details/54910606 本文介绍 授权流程 授权方式 授权测试 自定义授权realm 授权流程 开始构造Secu ...

  10. 权限管理系统之集成Shiro实现登录、url和页面按钮的访问控制

    用户权限管理一般是对用户页面.按钮的访问权限管理.Shiro框架是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理,对于Shiro的介绍这里就不多说.本篇博客主要是了解Shiro的 ...

随机推荐

  1. Hadoop案例(四)倒排索引(多job串联)与全局计数器

    一. 倒排索引(多job串联) 1. 需求分析 有大量的文本(文档.网页),需要建立搜索索引 xyg pingping xyg ss xyg ss a.txt xyg pingping xyg pin ...

  2. Asp.net vNext 学习之路(一)

    概述 asp.net vNext 也叫 asp.net 5.0,意思是微软推出的下一个版本的asp.net.可以说是微软对asp.net的一个比较重大的重新设计, asp.net vNext是一 个比 ...

  3. webstorm自动压缩js、css、html【工具篇】

    *注意:自动压缩的文件只能在同级目录下,不能指定文件夹,强制了文件自动保存,设置的手动保存将失效. 插件下载地址:点击这里下载 密码:e6bk 使用方法: 1.css&js 分别添加这两个,c ...

  4. Robot Framework 快速入门

    Robot Framework 快速入门 目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键 ...

  5. Redis实战(二)

    Redis服务 在C# Redis实战(一)中我将所有文件拷贝到了D盘redis文件夹下,其中redis-server.exe即为其服务端程序,双击即开始运行,如图

  6. poj2253 Frogger(Floyd)

    题目链接 http://poj.org/problem?id=2253 题意 给出青蛙A,B和若干石头的坐标,现在青蛙A要跳到青蛙B所在的石头上,求出所有路径中最远那一跳的最小值. 思路 Floyd算 ...

  7. 什么是泛型 转载自http://www.blogjava.net/Jack2007/archive/2008/05/05/198566.html

    我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类 ...

  8. HDU 1698 Just a Hook (线段树)

    Problem Description In the game of DotA, Pudge’s meat hook is actually the most horrible thing for m ...

  9. hdu 3081

    二分答案,网络流是否满流判断合法性. #include <cstdio> #include <cstring> #include <queue> #include ...

  10. bzoj 4766: 文艺计算姬 -- 快速乘

    4766: 文艺计算姬 Time Limit: 1 Sec  Memory Limit: 128 MB Description "奋战三星期,造台计算机".小W响应号召,花了三星期 ...