权限项目总结(四) shiro 授权

概述

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>
时间: 2024-11-06 13:19:31

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

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

1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 7. 基于treegrid实现菜单展示 2 常见的权限控制方式 2.1 url拦截实现权限控制 shiro基于过滤器实现的   2.2 注解方式实现权限控制 底层:代理技术     3 基于shiro的url拦截方式验权   <!-- 配置过滤器工厂 --> <bean id="

BOS项目 第7天(shiro权限框架进行认证和授权)

BOS项目笔记 第7天 今天内容安排: 1.权限概述(认证.授权) 2.常见的权限控制的方式(URL拦截权限控制.方法注解权限控制) 3.权限数据模型(权限表.角色表.用户表.角色权限关系表.用户角色关系表) 4.shiro框架入门 5.将shiro应用到bos项目中进行认证和授权 1. 权限概述 系统提供了很多功能,并不是所有的用户登录系统都可以操作这些功能.我们需要对用户的访问进行控制. 认证:系统提供的用于识别用户身份的功能(通常是登录功能)-----让系统知道你是谁?? 授权:系统提供的

SpringMVC+Apache Shiro+JPA(hibernate)案例教学(四)基于Shiro验证用户权限,且给用户授权

最新项目比较忙,写文章的精力就相对减少了,但看到邮箱里的几个催更,还是厚颜把剩下的文档补上. 一.修改ShiroDbRealm类,实现它的doGetAuthorizationInfo方法 package org.shiro.demo.service.realm; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import org.apache.commons.lang.St

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

shiro介绍 什么是shiro shiro是Apache的一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架.它可以实现如下的功能: 1.验证用户 2.对用户执行访问控制,如:判断用户是否具有角色admin,判断用户是否拥有访问的资源权限. 3.在任何环境下使用SessionAPI.例如C/S程序 4.可以使用多个用户数据源.例如一个是Oracle数据库,另外一个是MySQL数据库. 5.单点登录(SSO)功能

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

项目背景 公司在几年前就采用了前后端分离的开发模式,前端所有请求都使用ajax.这样的项目结构在与CAS单点登录等权限管理框架集成时遇到了很多问题,使得权限部分的代码冗长丑陋,CAS的各种重定向也使得用户体验很差,在前端使用vue-router管理页面跳转时,问题更加尖锐.于是我就在寻找一个解决方案,这个方案应该对代码的侵入较少,开发速度快,实现优雅.最近无意中看到springboot与shiro框架集成的文章,在了解了springboot以及shiro的发展状况,并学习了使用方法后,开始在网上

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

http://blog.csdn.net/facekbook/article/details/54910606 本文介绍 授权流程 授权方式 授权测试 自定义授权realm 授权流程 开始构造SecurityManager环境subject.isPermitted()授权securityManager.isPermitted()执行授权Authorizer执行授权Realm根据身份获取资源权限信息结束 授权方式 Shiro支持三种方式的授权: 编程式:通过写if/else授权代码块完成. Sub

shiro权限项目中的简单应用

SpringMVC+maven 项目需要使用shiro,所以自学了几天,仅提供给新手,请根据文档查看-该项目仅是测试项目,并不完善,只实现了需要使用的基本功能,并且只提供了使用shiro模块的代码.楼主新人第一次写,如有问题希望能提出来,由衷的感谢. 首先是pom.xml: <dependency>     <groupId>org.apache.shiro</groupId>     <artifactId>shiro-core</artifactI

shiro进行权限控制的四种方式

```我们使用shiro进行权限控制 有以下几种方式 1. URL拦截权限控制:基于filter过滤器实现 我们在spring配置文件中配置shiroFilter时配置 <!--指定URL级别拦截策略 --> <property name="filterChainDefinitions"> <value> /css/ = anon /js/ = anon /images/ = anon /validatecode.jsp = anon /login.

Shiro授权管理

一.授权 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permission).角色(Role). 二.Shiro授权概念(RBAC) 1,Subject 主体,即访问应用的用户,在Shiro中使用Subject代表该用户.用户只有授权后才允许访问相应的资源. 2,Resource 在应用中用户可以访问的任何东西,比如访问JSP 页面.查看/编辑某些数据.访问某个业务方

Spring中集成Shiro授权实例

授权流程回顾 首先说一句,使用授权的前提当然是先要实现身份验证,也就是要保证用户登录之后才可能考虑授权的问题.关于身份验证之前已经写过了,还不清楚的童鞋可以点这里 上一篇文章介绍了Shiro中授权的一些基础知识和原理.学了就要用,本篇文章就介绍如何在项目中应用Shiro的授权.这里为了方便大家阅读,先贴出上一篇文章中分析出的授权流程: 当我们调用Subject.hasRole(...)后 首先会委托给securityManager来处理,而securityManager内部有一个Authoriz