shiro授权管理方式详解

【Python爬虫】爬取企业专利信息 本来是个美好的周末的,但是周五晚上领导给了一个公司名称的Excel,让把这些公司的专利信息爬取下来。本文记录了爬取企业专利信息的心酸过程。码字不易,喜欢请点赞!!! 一、找寻目标网页 在接到这个任务之后,我的内心是拒绝的。但是又不能不干。因此首先我需要先找到有公司专利信息的地方。在一番查找和问了问朋友之后,我知道中国专利网、国家知识产权网、Incopat、天眼查、企查查这些网站上面都有企业的专利... 阅读详情

一.概述 

1.授权,又称作为访问控制,是对资源的访问管理的过程。换句话说,控制谁有权限在应用程序中做什么, 通过使用shiro的授权功能,能够完成细粒度的权限控制。

2.授权的三要素

  授权有着三个核心元素:权限、角色和用户 。

  我们需要在应用程序中对用户和权限建立关联,通常的做法就是将权限分配给某个角色,然后将这个角色关联一个或多个用户。


二.shiro完成权限控制的四种方式

1.使用方法注解方式进行权限控制(基于代理技术实现),比较灵活

第一步:在spring配置文件中开启shiro注解支持,spring使用AOP的方式为方法注入权限控制代码。必须使用cglib方式创建代理对象。具体如下代码

<!-- 开启shiro框架注解支持 -->
	<bean id="defaultAdvisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
		<property name="proxyTargetClass" value="true"></property>
	</bean>
	<!-- 配置shiro框架提供的切面类,用于创建代理对象 -->
	<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/>
第二步:在action的方法中使用注解,如下
@RequiresPermissions("staff-delete")
//执行此方法,用户需要staff-delete权限
	public String deleteBatch() {
		staffService.deleteBatch(ids);
		return LIST;
	}
2.URL拦截权限控制(基于过滤器实现),比较高效,但是不够灵活

<!--注入URL拦截规则 -->
		<property name="filterChainDefinitions">
			<value>
				/css/** = anon
				/js/** = anon
				/images/** = anon
				/validatecode.jsp* = anon
				/login.jsp = anon
				/userAction_login.action = anon
				/page_base_staff.action = perms["staff-list"]
				/* = authc
			</value>
		</property>

作为一个property配置在ShiroFilterFactoryBean的bean配置中,其中anon代表不进行权限控制可匿名访问,

perms代表要进行权限控制,authc代表要认证过后才能访问。

3.页面标签权限控制(基于标签技术实现),可以实现在页面展示的权限化

第一步:在jsp页面中引入shiro的标签库

%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
第二步:在需要进行权限控制的控件外围加上shiro标签
shiro:hasPermission name="staff-delete">
	{
		id : 'button-delete',
		text : '删除',
		iconCls : 'icon-cancel',
		handler : doDelete
	},
	</shiro:hasPermission>

4.代码级别的权限控制,由于要侵入代码,使用较少

//获得当前用户
Subject subject=SecrityUtils.getSubject();
//校验权限
subject.checkPermission("staff-delete");
三.shiro授权方法

第一步:在自定义的Realm中对登陆用户进行授权,代码如下

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0) {
		SimpleAuthorizationInfo info=new SimpleAuthorizationInfo();
		info.addStringPermission("staff-list");
		info.addStringPermission("staff-delete");
		return info;
	}
第二步:在strut.xml中配置全局异常捕获,当权限不足时,跳转到此页面,异常为UnauthorizedException

<global-results>
	<result name="unauthorized">/unauthorized.jsp</result>
</global-results>
<global-exception-mappings>
	<exception-mapping result="unauthorized" exception="org.apache.shiro.authz.UnauthorizedException"></exception-mapping>
</global-exception-mappings>
至此,shiro框架就完成了一个比较简单的权限管理。需要注意的是以上的权限控制都是固定的,在真正的项目中权限数据需要放在在数据库中,权限表管理角色表,角色表管理用户表,在自定义Realm中通过为用户分配不同的角色而动态的分配权限。

四.总结

shiro提供了四种方式的权限控制方式,在实际开发中,配合着使用四种方式,可以完成细粒度的权限控制工作。

实战优化!C#上位机串口通信卡顿问题:超时机制+数据缓存方案 串口名</param>/// <param name="baudRate">波特率 阅读详情

相关推荐

从零到一:RJ71EN71 ModbusTCP配置的避坑指南与实战技巧

本文详细解析三菱RJ71EN71模块的ModbusTCP配置全流程,涵盖GX Works3参数设置、地址映射、通信调试等核心环节。针对工业环境中常见的IP冲突、软元件分配错误、通信超时等高频问题提供实战解决方案,帮助工程师快速构建高可靠性通信网络,避免项目延期风险。

zzz56的博客 331

Shiro之管理授权

Shiro之管理授权授权概念授权的方式代码触发注解触发标签触发授权流程图简单授权实现设置shiro.ini文件自定义Realm授权自定义Real授权方法ini文件 授权概念 授权,又称作为访问控制,是对资源的访问管理的过程,即对于认证通过的用户,授予他可以访问某些资源的权限。 授权的方式 shiro中支持三种方式的授权 代码触发 通过if/else语句完成授权代码块 Subject subject...

JustinNeil的博客 585

5种主流触觉传感器对比:GelSight、DIGIT、Taxim、GelSlim和TACTO怎么选?

本文深度对比了GelSight、DIGIT、Taxim、GelSlim和TACTO五种主流触觉传感器的技术原理与应用场景。针对机器人及VR项目的选型需求,文章从光学与电子传感的技术分野出发,分析了各传感器在分辨率、响应速度、集成难度和成本上的核心差异,并提供了从需求出发的实战选型决策框架,帮助开发者找到最适合的触觉解决方案。

weixin_29268637的博客 695

Shiro 基于权限授权的简单应用与授权注解

上篇文章有必要看一下:Shiro 基于角色授权的简单应用与权限过滤器配置含义 一、基于权限授权的简单应用 数据库: 用户admin, 只拥有角色 admin 和 user 与访问 /admin/userlist 的权限资源,如果 pid 为1和2,则两者都可访问。 1、spring.xml 在配置 shiro 的过滤器上,配置权限控制的拦截规则: ...

Charge8的博客 1053

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2416

企业信息化系统的组成模块-核心业务系统

通过标准化的数据流形成完整的业务闭环,CRM生成的销售订单驱动ERP的生产和采购,ERP将生产计划传递给MES执行,MES报工数据返回ERP进行成本核算,ERP再将交付信息同步给CRM供客户查询。生产管理确保高效交付,缩短订单周期。某贸易公司实施ERP供应链模块后,库存周转率从每年4次提升到8次,库存资金占用从2000万降到1200万,释放800万现金流,同时缺货率从15%降到5%。│ │库存 │ │ MRP │ │ ERP │ │ 云ERP/ │ │。

weiyvyy的博客 695

shiro权限管理的应用

shiro权限管理的应用 官网:http://shiro.apache.org 一, 什么是权限管理: 对系统中的资源进行权限配置 , 对资源的一种保护 ; 一般需要进过两个步骤: 身份认证- 授权 - 资源访问; 1.1 身份认证: 1.2 授权 在认证完成之后 ,访问资源的时候进行权限判断; 1.3 关键对象: 主体:subject 访问系统资源的用户身份;这些用户的身份不仅仅可以是一个具体的人 ,还可以是一个设备或者网络对象;这些统称为主体; 身份信息:Principal ,

等待のL先森的博客 251

手把手教你用U盘给海信IP501H刷机:GK6323V100C芯片的4.4.2和9.0固件实战

本文详细介绍了海信IP501H电视盒子基于GK6323V100C芯片的刷机实战指南,涵盖Android 4.4.2强刷和Android 9.0免拆刷机两种方案。从工具准备、短接操作到ADB调试,提供全流程解析和常见问题解决方案,帮助用户安全高效地完成刷机操作。

lemon的博客 1456

在Ubuntu 16.04上安装和使用服务器监控报警系统Shinken

第一步 安装 Shinken 服务器 Shinken 是一个 Python 框架,我们可以通过 pip 安装或者从源码来安装它,在这一步中,我们将用源代码编译安装 Shinken。 在我们开始安装 Shinken 之前还需要完成几个步骤。 安装一些新的 Python 软件包并创建一个名为 shinken 的系统用户: sudo apt-get install python-se

wang_xingg的专栏 1486

[RK3588-Android12] 深入解析USB Type-C PD充电功能的DTS配置与内核驱动修改

本文深入探讨了在RK3588 Android12平台上禁用USB Type-C PD充电功能的实现方法。通过分析设备树(DTS)配置与内核驱动(TCPM框架)的联动修改,详细解读了如何通过添加`pd-disable`属性及修改`tcpm.c`驱动代码,使Type-C端口绕过PD协议协商,仅工作在传统电源模式,以满足工控等特定场景对供电稳定性和成本控制的需求。

9o8p7i6u5y的博客 994

ECC密码的加密和解密(附带代码实现)

ECC,全称Elliptic Curve Cryptography,是椭圆曲线密码学。这是一种公钥加密技术,其安全性基于椭圆曲线离散对数问题,被广泛应用于信息安全领域。ECC的主要优势在于,相较于RSA和DSA等其他传统的公钥密码体系,它能够在提供相同安全级别的情况下,使用更短的密钥,从而减少计算量和存储空间的需求。例如,一个256位的ECC密钥提供的安全性可以与3072位的RSA密钥或DSA密钥相媲美。ECC的主要应用领域包括SSL安全证书、安全电子邮件、移动设备安全、物联网设备安全等。

xixixi7777的博客 8271

【Shiro权限管理】14.Shiro授权

注:该系列所有测试均在之前创建的Shiro3的Web工程的基础上。 我们之前讲解了Realm认证和认证器策略等知识,下面来讲解Shiro中比较重要的知识:授权。 对于授权,也叫访问控制,即在应用中控制谁访问哪些资源(如访问页面/编辑数据/页面操作等)。 一、授权的几个重要概念 在授权中需要了解几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、

程序猿之洞 1932

手把手教你学Simulink--基于电能质量与无功补偿的场景实例:统一电能质量调节器(UPQC)的联合控制仿真

在现代电力系统中,电能质量问题有源电力滤波器(APF)→ 治理谐波与无功动态电压恢复器(DVR)→ 补偿电压暂降/暂升静止无功发生器(SVG)→ 无功补偿与电压支撑而统一电能质量调节器(Unified Power Quality Conditioner, UPQC)是一种集串联补偿与并联补偿于一体的全能型电能质量治理装置✅ 电压类问题:暂降、暂升、不平衡、闪变✅ 电流类问题:谐波、无功、三相不平衡✅ 实现双向有功交换(储能型)串联单元(DVR功能):串联于线路,控制电源侧电压质量并联单元。

MHD0815的博客 239

Shiro之授权管理与授权的三种方式(1、编程方式,2、注解方式,3、jsp标签)-yellowcong

授权管理,三种方式,其中注解和jsp的方式在开发中用得比较的多,但是对于编程的方式完成注解,在实际开发中,用得不是特别多。这一节,讲解shiro如何完成授权的,授权操作,需要在Reaml中,实现doGetAuthorizationInfo 方法,多Reaml的情况下, 只要一个Reaml中满足条件,就会执行

6349

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

shiro授权管理

1、授权   授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的。 2、关键对象   授权可简单理解为who对what(which)进行How操作   who,即主体(sbuject),主体需要访问系统中的资源。   what,资源(resource),如菜单,页面,按钮,类方法,系统商品信息。   how,权限/许...

qq_44349459的博客 163

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

shiro实现登录认证与权限授权管理

Apache Shiro 是一个强大而灵活的开源安全框架,从官网上,我们基本上可以了解到,她提供的服务非常明确: 1.Authentication(认证) 2.Authorization(授权) 3.Session Management(会话管理) 4.Cryptography(加密) 1.maven配置 &lt;!--处理登录相关依赖包--&gt; &lt;dep...

小生的博客 2460

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Shiro框架基本知识及应用

1. Shiro 基本知识 1. 目前市面主流的安全框架: shiro:轻量级的,使用很方便,灵活,是apache提供的,在任何框架的 SpringSecurity:是Spring家族的一部分,很多项目中会使用spring全家桶,相对与shiro来说,springSecurity更重量级,必须要求spring环境;相对shiro而言,功能更强大 2. 什么是Shiro? Shiro是apache旗下一个开源安全框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证、权限授权、加密、会话管理等功

Forever Young 7706

shiro 实现多种方式登录_SpirngBoot + Shiro 实现多种登录方式的身份认证及授权管理...

一、Shiro中的类核心类ShiroFilterFactoryBean:Shiro框架中的Web过滤器SecurityManager:Shiro的核心,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务,构建ShiroFilterFactoryBean时需要一个SecurityManager实例。Subject:“当前操作用户”。Subject代表了当...

weixin_39738273的博客 1237

Java语言的授权管理

随着技术的发展,授权管理的复杂性不断增加。Java语言为实现有效的授权管理提供了多样的框架和工具。通过合理的架构设计和实现,结合设计模式和最佳实践,可以构建一个安全、高效和可维护的授权管理系统。在未来的开发中,我们应继续关注安全问题,提高对授权管理的重视,为用户提供更加安全的系统环境。

2501_91366716的博客 398

shiro授权管理的过程

shiro作为Apache的一款安全产品,Shiro包括四大模块: Shiro内部调用流程: 从图中可以看出,要是我们想进行安全管理,就必须先经过subject,到达安全管理后,使用Realm获取真实的信息与用户输入的进行比对。 授权管理主要分为两部分,首先肯定用户得登录成功;然后才能继续谈及授权 登录部分 (1)必须先经过Subject,然后才能进入到security...

大鱼的博客 783

Spring Boot整合Shiro进行权限授权管理

Spring Boot整合Shiro进行权限授权管理 上次咱们说到了在Spring Boot中整合Shiro进行身份验证,在其基础上咱们今天继续来说说Shiro另一个很重要的功能权限管理。 一.自己定义的域重写doGetAuthorizationInfo方法 上一章中咱们的域MyShiroRealm中doGetAuthorizationInfo方法直接返回null,不做权限的处理。现在我...

我的博客 2511

spring boot 2.x + shiro实现多种登录方式(多个Realm)

继上篇关于shiro使用的博文介绍,我们已经初步了解了在spring boot中如何使用shiro,但是当我们集成shiro实现登录认证的时候会发现,我们的系统支持多种登录方式(密码登录、手机验证码登录、其他第三方登录),而且每种登录方式的具体实现又会存在差异,这时候我们就需要用shiro的多realm的方式去实现登录,每个realm对应不同的登录方式的具体实现。 此处举例以密码登录、手机验证码...

zhourenfei17的专栏 5578

Shiro核心深度解析文档

Shiro的体系结构有3个主要概念Realm是可以访问特定于应用程序的安全数据(如用户、角色和权限)的组件, 它将应用程序的数据转换为 Shiro 可以理解的格式,因此 Shiro 可以反过来提供一个易于理解的主题编程 API。

JavaMyDream的博客 1387

shiro学习笔记:授权管理

shiro授权管理,通过realm进行授权,shiro框架通过realm与数据库连接,因此登录,授权,角色获取等与数据库有关的都在数据库中获得; 授权就是给某个用户授予某个权限,当用户访问某一资源时,发送请求,判断当前用户有没有对当前资源的访问权限,如果有就放行,如果没有,报异常: public class MyRealm extends AuthorizingRealm { ...

weixin_30618985的博客 106

springmvc+shiro+maven 实现登录认证与权限授权管理

Shiro 是Shiro 是一个 Apache 下的一开源项目项目,旨在简化身份验证和授权。 1:这里主要shiro依赖的jar包 org.apache.shiro shiro-core 1.2.1 org.apache.shiro shiro-w

bug_404的博客 3559

Shiro

Shiro RBAC是你公司内部用的系统:只有你公司的去用,如果你公司的人去用,如果找一个新的开发人员的话,这个人就需要花很长时间去学习你的权限管理系统 Shiro一个开源的安全管理框架:开源框架就意味这着很多人都在用 一、主要组件 subject:主体,委托方,表示当前操作的用户 SecurityManager:是shiro的核心,类似于SpringMVC的DispathchServlet Realm:数据源,负责查询数据 Authenticator:认证器,用于的登录是否成功在此验证 Authoriz

weixin_45130829的博客 1120
上一篇: 权限控制框架shiro与spring整合详解
下一篇: Quartzt框架与Spring整合使用详解
wonabi
博客等级 码龄11年 14粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值