shiro初始化资源和权限

ssm+shiro基于资源的权限控制框架(包含权限的认证、授权细致讲解),数据库使用mysql Java语言的框架整合及权限的控制(粗粒度、细粒度) SSM(spring+springmvc+mybatis)的整合 SSM+shiro基于资源的权限控制整合demo 配置文件原理的注释 shiro的认证、授权、及从数据库mysql获取的认证信息方法都有提供 立即下载

1、身份验证相关的默认拦截器名

拦截器名拦截器类功能
authcorg.apache.shiro.web.filter.authc.FormAuthenticationFilter基于表单的拦截器,如果没有登陆会跳转到相应的登录页面登录
authcBasicorg.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilterBasicHttp身份验证拦截器
logoutorg.apache.shiro.web.filter.authc.LogoutFilter登出拦截器,登出之后页面重定向
userorg.apache.shiro.web.filter.authc.UserFilter用户拦截器,用户已经身份认证/记住我都可访问
anonorg.apache.shiro.web.filter.authc.AnonymousFilter匿名拦截器,不需要登录即可访问,一般用于过滤静态资源

2、shiro配置filterChainDefinitions实现初始化页面权限保护

在正常情况下我们的资源和权限都是从数据库中读取出来的,而在shiro中通过配置文件中的ShiroFilterFactoryBean的filterChainDefinitions属性来配置各个页面的权限。

    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="/to_login"/>
        <property name="successUrl" value="/list"/>
        <!-- 未授权跳转页面 -->
        <property name="unauthorizedUrl" value="/unauthorized"/>
        <!--
            配置哪些页面需要受保护.(满足ant风格)
            以及访问这些页面需要的权限.
            1). anon 可以被匿名访问
            2). authc 必须认证(即登录)后才可能访问的页面.
            3). logout 登出.
            4). roles 角色过滤器
        -->
        <property name="filterChainDefinitions">
            <value>
                /login = anon
                /to_login = anon
                /logout = logout
                /unauthorized = anon

                /list = roles[user]
                /user = roles[user]
                /admin = roles[admin]

                /test = anon
                /testRequiresAuthentication = anon
                /testRequiresUser = anon
                /testRequiresGuest = anon
                /testRequiresRoles = anon
                /testRequiresPermissions = anon

                # everything else requires authentication:
                /** = authc
            </value>
        </property>

    </bean>

3、通过数据库初始化资源和权限的方式

1)创建一个可以其中有返回LinkedHashMap方法的实体类

public class FilterChainDefinitionMapBuilder {
    /**
     * 可以通过该方法从数据库中读出要保护的页面
     */
    public LinkedHashMap<String,String> filterChainDefinitionMapBuilder(){

        LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap<>();
        //从数据库中读取的数据
        linkedHashMap.put("/login","anon");
        linkedHashMap.put("/to_login","anon");
        linkedHashMap.put("/logout","logout");
        linkedHashMap.put("/unauthorized","anon");
        linkedHashMap.put("/list","roles[user]");
        linkedHashMap.put("/user","roles[user]");
        linkedHashMap.put("/admin","roles[admin]");
        linkedHashMap.put("/test","anon");
        linkedHashMap.put("/testRequiresAuthentication","anon");
        linkedHashMap.put("/testRequiresUser","anon");
        linkedHashMap.put("/testRequiresGuest","anon");
        linkedHashMap.put("/testRequiresRoles","anon");
        linkedHashMap.put("/testRequiresPermissions","anon");
        linkedHashMap.put("/**","authc");
        return linkedHashMap;
    }
}

2)spring配置文件中配置如以下代码*号包括部分,之后将配置的类写入shiroFilter的filterChainDefinitionMap属性中(通过实例工厂的方式初始化)

    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="/to_login"/>
        <property name="successUrl" value="/list"/>
        <!-- 未授权跳转页面 -->
        <property name="unauthorizedUrl" value="/unauthorized"/>
        <property name="filterChainDefinitionMap" ref="filterChainDefinitionMap"></property>
    </bean>
*******************************************
    <bean id="filterChainDefinitionMap" factory-bean="filterChainDefinitionMapBuilder" factory-method="filterChainDefinitionMapBuilder">
    </bean>
	 <!-- 配置一个bean,该bean实际上是一个Map。通过实例工厂方法的方式 -->
    <bean class="com.shiro.test.factory.FilterChainDefinitionMapBuilder" id="filterChainDefinitionMapBuilder">
    </bean>
*******************************************
权限分配Shiro案例(推荐) 一个简单的物流项目,导入后可能需要进行微调,这里用的是jdk1.7,是一个pom工程。把项目进行跑一遍,需要的地方打个断点,关于shiro框架就清楚了 立即下载

相关推荐

gem5 run parsec2.1 ---- 亲测跑通教程

使用gem5模拟仿真parsec2.1,排除了各种bug,成功跑通,亲测有效!!!

m0_55539563的博客 1547

Shiro0-hello

文章目录shiro简介框架说明内部的框架常见的单词Shiro中的shiro.ini说明mainusersrolesurls案例添加依赖添加shiro.ini文件认证操作 shiro简介 官网 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应...

十月 340

《大明王朝1566》中,朝廷财政危机无法解决的根源分析

财政困局中的财富最终流向三重黑洞:​皇室挥霍​(如嘉靖炼丹修殿)、特权阶层贪腐​(严党年入百万两盐税)、制度性损耗​(宗室供养、低效官僚)。更深层的“钱”其实是被禁锢在道德化治理的牢笼中——当国家用“黄河长江皆可为用”的权术思维替代制度性改革时,财政危机便成为帝制王朝无法逃脱的宿命。

为了小家奋斗 1977

Shiro 从数据库中初始化授权

根据前面的了解,这次把基于权限的授权通过从数据库中初始化授权实现。 1、分析一下 Shiro 过滤链 <!-- 配置shiro的一些拦截规则,id必须和web.xml中的 shiro 拦截器名一致 --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryB...

Charge8的博客 678

从零开始:用君正T23ZN打造智能门锁双摄系统(含代码示例与调试技巧)

本文详细介绍了基于君正T23ZN视频处理芯片构建智能门锁双摄系统的完整实战方案。内容涵盖硬件选型与核心电路设计、软件开发环境搭建、双摄驱动框架、图像信号处理(ISP)调优、人脸识别算法集成与性能优化,以及系统调试与稳定性保障。文章提供了丰富的代码示例和调试技巧,旨在帮助嵌入式开发者高效实现具备人脸识别与监控功能的低功耗智能门锁视觉系统。

opencv7vision的博客 717

PCIe中ACS知识小记

虚拟机内部的访问数据显而易见是带的GPA地址。而目前几乎所有的PCIe 设备都带ACS control,所以它们可以单独assign给不同的VM,但是随之而来的就是即使两个GPU同时assign给同一个VM,由于ACS的存在,他们之间也不会有真正的物理层面的P2P访问。每一个TLP都自带一个address(寻址类TLP),同时每一个endpoint,PCIe switch都自带一段BIOS配置的地址空间范围,一旦这个TLP的address落入某个设备的地址范围,那么这个TLP就属于这个设备并消费。

Summer的博客 5078

Shiro 权限管理

一共5个表 用户表 角色表 权限表 用户角色中间表 角色权限中间表 权限验证 通过角色来判断有没有权限。 比如 if 用户有在用户角色中间表中有经理的角色, 就可以查看工资。这中判断比较笼统。适合比如实现不同的角色登录以后看到不同的菜单。 通过权限标识来判断, 这个就需要查出用户拥有的具体权限。 这个权限控制比较细致。 适合细致的,比如部门公司的管理员,只能修改该部门下的员工资料。 Shi...

心猿意码 5246

UE5实战技巧:TextRender高效集成中文字体与材质优化

本文针对UE5中TextRender组件显示中文的常见问题,提供了一套完整的实战解决方案。详细讲解了如何通过手动创建字体资产、精准控制字符集来优化性能,并重点介绍了通过调整材质中的Lerp节点参数(如设为-85, 92)来解决中文字体显示残缺和边缘模糊等核心难题,帮助开发者实现高效且美观的中文文本渲染。

weixin_28040125的博客 382

Shiro权限控制+整合shiro

Shiro权限控制 0.1传统的权限认证方式 特点:为每个人单独的分配权限模块,能够实现权限控制,但是当公司人员庞大之后,非常难管理 上述权限控制如何设计表? 关系:员工和菜单权限的关系:多对多 员工id 菜单名称 1 取派管理 2 快递员管理 2 运单管理 好处:可以方便的 实现权限控制 缺陷:比如当修改权限的时候,公司统一的给组长级别的人 加一个“计算工资”权限,...

Armymans的博客 2万+

point transformer v3结构

分割结构: embedding->enc->dec embedding->enc0->enc1->enc2->enc3->enc4->dec3->dec2->dec1->dec0 embedding ->block0->block1 ->dow->block0->block1 ->dow->block0->block1 ->dow->block0->block1-&gt

weixin_45625419的博客 582

SAP Joule 在顾问与开发者场景的双擎定位:Joule for Consultants 与 Joule for Developers 全面解读

SAP推出企业级AI助手Joule,分为顾问版(Joule for Consultants)和开发者版(Joule for Developers)两个版本。顾问版聚焦咨询业务,整合SAP知识库和方法论,辅助方案设计、差距分析和实施落地;开发者版嵌入开发工具链,支持代码生成、解释、测试和迁移。两者共享智能底座但面向不同场景:顾问版优化项目交付流程,开发者版提升工程效率。典型案例显示,Joule能有效缩短云转型周期,实现从业务咨询到技术落地的无缝衔接。该产品通过AI代理和知识图谱技术,为企业数字化转型提供端到端

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 355

Shiro 授权(权限)

一、授权(权限) 1.1 什么是权限 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。 1.2 权限框架 shiro spring security Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单, 对比Spring Security,可能没有Spring Security做的功能强大,但...

我的博客----机械鱼人 2344

innovus:InstPad、CellPad 、module padding、clock cell halo

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?site_num指的是padding的大小以site宽度为单位。

m0_61544122的博客 2028

Shiro从数据表中初始化资源和权限

之前在测试的Web工程下,我们在applicationContext.xml中配置了shiroFilter资源拦截器信息: <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="secu...

weixin_30820151的博客 62

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

AI-native芯片设计:真正稀缺的是需求规格、跨层协同与验证保证

大模型与AI技术正在重塑芯片设计范式,AI-native芯片设计成为行业焦点。其核心不只是用AI辅助EDA工具自动生成RTL或优化布局布线,而在于从架构定义、微架构选型到物理实现和编译适配的全程协同。面对算力、人才与数据三大资源约束,真正稀缺的是把模糊业务需求转化为可设计规格的系统能力、跨软硬件层级的联调经验,以及让验证结果可审计、可证明的风险把控力。AI工具放大了生成效率,也放大了错误被掩盖的速度;唯有在规格澄清、横向原型链路和风险登记机制上夯实工程实践,才能将AI能力置于正确位置,避免流片前最后一公里翻

weixin_34111790的博客 368

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

shiro注解,初始化资源和权限,会话管理

有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 注解: 新建一个类: 此时需要有admin的权限才可以执行下面的代码 public class ShiroService { @RequiresRoles({"admin"}) public void testMethod(){ ...

weixin_34186950的博客 186

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Shiro权限管理】18.Shiro从数据表中初始化资源和权限

注:该系列所有测试均在之前创建的Shiro3的Web工程的基础上。 前面我们讲解了Shiro的标签以及权限注解,下面我们来讲解一下Shiro如何从数据表中初始化资源和权限。 之前在测试的Web工程下,我们在applicationContext.xml中配置了shiroFilter资源拦截器信息: &lt;bean id="shiroFilter" class="org.apache.shiro...

程序猿之洞 6030

Shiro-从数据表中初始化资源和权限

我们在 applicationContext中配置受保护的资源和权限的关系     <property name="filterChainDefinitions"> <value> /login.jsp= anon /shiro/login= anon ...

ankan7400的博客 136

11.Shiro_从数据表中初始化资源和权限

1.创建一个类,把权限放进Map当中 package com.atguigu.shiro.factory; import java.util.LinkedHashMap; public class FilterChainDefinitionMapBuilder { public LinkedHashMap<String, String> buildFilterChainDe...

qq_36468169的博客 189

_016_Shiro_从数据表中初始化资源和权限

public class FilterChainDefinitionMapBuilder { public LinkedHashMap&lt;String,String&gt; buildFilterChainDefinitionMap(){ LinkedHashMap&lt;String,String&gt; lHMap=new LinkedHashMap&lt;&gt;(); ...

poiuyppp的博客 221

shiro从数据表中初始化资源和权限,很重要(十)

factory-bean="filterChainDefinitionMapBuilder" factory-method="buildFilterChainDefinitionMap">          filterChainDefinitionMapBuilder"     class="com.atguigu.shiro.factory.FilterChainDefinitionMa

逝者如风 443

Shiro笔记三:Shiro权限配置、Shiro授权流程分析、Shiro多 Realm 授权的通过标准、实现授权 Realm、Shiro标签、Shiro权限注解

三、shiro授权 16. Shiro_权限配置     DefaultFilter这个类中定义了有shiro中的过滤器,               17. Shiro_授权流程分析 要实现授权功能只需要将类继承AthurizingRealm类,因为AuthrizingRealm是继承自AuthenticatingRealm类的一个抽象方法。...

Welcome 7751

Shiro使用

授权 授权,也叫访问控制,即在应用中控制谁访问哪些资源(如访问页面/编辑数据/页面操作 等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限 (Permission)、角色(Role)。 • 主体(Subject):访问应用的用户,在 Shiro 中使用Subject 代表该用户。用户只有授权 后才允许访问相应的资源。 • 资源(Resour...

hycksrwzsn00的博客 352

shiro权限注解

Shiro权限注解(可以用在Controller层对应的方法上/Service层对应的方法上)1》@RequiresAuthentication:表示当前Subject已经通过login进行了身份验证;即Subject.isAuthenticated()返回true。2》@RequiresUser:表示当前Subject已经身份验证或者通过记住我登录的。3》@RequiresGuest:表示当前S...

安分_pingping 811
上一篇: shiro权限注解
下一篇: 单例设计模式
magicproblem
博客等级 码龄7年 22粉丝 59原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值