news 2026/7/28 17:02:36

shiro 使用bean来配置权限信息

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
shiro 使用bean来配置权限信息

在此之前,可以先修改之前的权限配置。之前在applicationContext.xml中权限配置是:

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <property name="loginUrl" value="/login.jsp"/> <property name="successUrl" value="/list.jsp"/> <property name="unauthorizedUrl" value="/unauthorized.jsp"/> </property> <!-- 配置哪些页面需要受保护. 以及访问这些页面需要的权限. 1). anon 可以被匿名访问 2). authc 必须认证(即登录)后才可能访问的页面. 3). logout 登出. 4). roles 角色过滤器 --> <property name="filterChainDefinitions"> <value> /login.jsp = anon /shiro/login = anon /shiro/logout = logout /user.jsp =roles[user] /admin.jsp = roles[admin] <!--# everything else requires authentication:--> /** = authc </value> </property> </bean>

可是如果这样的话,如果要从数据库中拿到权限配置信息的话,就比较麻烦,现在,我们可以建立一个bean(里面为map来配置,方便从数据库中拿到权限配置信息):

1.先建立一个factory的包:里面写入:

filterChainDefinitionMapBuilder.java:
package com.atguigu.shiro.factory; import java.util.LinkedHashMap; //有的时候需要从数据库中拿到权限信息,则要采用这种方式。 public class filterChainDefinitionMapBuilder { //采用这种方式,方便从数据库中拿取权限信息! public LinkedHashMap<String,String> buildFilterChainDefinitionMap(){ LinkedHashMap<String, String> map = new LinkedHashMap<>(); map.put("/login.jsp","anon"); map.put("/shiro/login","anon"); map.put("/shiro/logout","logout"); map.put("/user.jsp","authc,roles[user]");//如果通过认证且角色为user map.put("/admin.jsp","authc,roles[admin]");//如果通过认证且角色为admin map.put("/list.jsp","user"); map.put("/**","authc"); return map; } }

注意,这是LinkedHashMap是有顺序的。

2.修改applicationContext.xml配置文件:

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <property name="loginUrl" value="/login.jsp"/> <property name="successUrl" value="/list.jsp"/> <property name="unauthorizedUrl" value="/unauthorized.jsp"/> <!--要从数据库里拿到权限信息,就要采取下面的配置--> <property name="filterChainDefinitionMap" ref="filterChainDefinitionMap"></property> <!-- 配置哪些页面需要受保护. 以及访问这些页面需要的权限. 1). anon 可以被匿名访问 2). authc 必须认证(即登录)后才可能访问的页面. 3). logout 登出. 4). roles 角色过滤器 --> <!--<property name="filterChainDefinitions">--> <!--<value>--> <!--/login.jsp = anon--> <!--/shiro/login = anon--> <!--/shiro/logout = logout--> <!--/user.jsp =roles[user]--> <!--/admin.jsp = roles[admin]--> <!--# everything else requires authentication:--> <!--/** = authc--> <!--</value>--> <!--</property>--> </bean> <!--要从数据库里拿到权限信息,就要采取下面的配置--> <!--需要配置一个bean,该bean实际上是一个map,通过实例化工厂的方式--> <bean id="filterChainDefinitionMap" factory-bean="filterChainDefinitionMapBuilder" factory-method="buildFilterChainDefinitionMap"></bean> <bean id="filterChainDefinitionMapBuilder" class="com.atguigu.shiro.factory.filterChainDefinitionMapBuilder"></bean> <bean id="shiroService" class="com.atguigu.shiro.service.ShiroService"></bean>

这样就可以完成配置了,使用效果和之前的一样。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 17:02:19

三相电压不平衡的危害诊断与工程解决方案

1. 三相电压不平衡的典型表现与危害识别当配电系统中三相电压幅值差异超过允许范围时&#xff0c;我们就会面临电压不平衡问题。在实际运维中&#xff0c;我常通过以下现象快速判断问题存在&#xff1a;设备异常发热&#xff1a;电动机绕组温升明显&#xff0c;特别是中性线电流…

作者头像 李华
网站建设 2026/7/28 17:01:49

终极OpenCore安装指南:5步掌握黑苹果专业引导技术

终极OpenCore安装指南&#xff1a;5步掌握黑苹果专业引导技术 【免费下载链接】OpenCore-Install-Guide Repo for the OpenCore Install Guide 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Install-Guide OpenCore是一款专业的macOS引导加载器&#xff0c;专…

作者头像 李华
网站建设 2026/7/28 16:59:51

专科生应对AIGC检测:降AI率工具与技术解析

1. 项目概述&#xff1a;专科生如何应对AIGC检测时代2026年毕业季即将到来&#xff0c;一个名为"千笔降AIGC助手"的平台正在专科院校中快速传播。这个工具直击一个痛点问题&#xff1a;当Turnitin等检测系统开始全面部署AIGC内容识别功能后&#xff0c;使用过AI辅助写…

作者头像 李华
网站建设 2026/7/28 16:57:57

【C语言】《C语言自定义类型(结构体+联合体+枚举类型)》--详解

一.结构体1.结构体基本知识结构是⼀些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。2.结构体的说明结构体声明语法struct tag {member-list; // 成员列表 } variable-list; // 变量列表&#xff08;可选&#xff09;示例&#xff1a;描述一…

作者头像 李华
网站建设 2026/7/28 16:53:21

哪个 AI 写小说软件好用?10 款写小说工具网文作者实测,附避坑指南

大家好&#xff0c;我是一个在网文圈扑腾了几年的老码字机了~ 每天深夜对着文档卡文、为了全勤奖硬熬字数、写到多线剧情时脑子突然卡住&#xff0c;这些痛苦我都太熟了。尤其是长篇小说连载到中后期&#xff0c;人物线、感情线、伏笔线全挤在一起&#xff0c;手放在键盘上&am…

作者头像 李华
网站建设 2026/7/28 16:51:43

SteamAutoCrack完整教程:3步快速移除游戏DRM保护实现离线游戏

SteamAutoCrack完整教程&#xff1a;3步快速移除游戏DRM保护实现离线游戏 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack SteamAutoCrack是一款专业的Steam游戏自动破解工具&#xff0…

作者头像 李华