springboot +shiro 授权无效的问题

本文探讨了在使用Shiro框架进行权限管理时遇到的问题,详细分析了数据库权限码无效的情况,并对比了手动添加权限的有效性。通过调整权限码设计模式和理解Shiro中权限识别的默认加*规则,解决了权限管理的难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大神求指教
问题描述:
1.用数据库的权限码无效(放入集合无效)
2.手动添加权限可以使用(类似于:authorizationInfo.addStringPermission(“aa”))

无效情况一:

       List<String> list=new ArrayList<String>();
		for (Functions func : functions) {			
			  list.add(func.getFuncCode());
		 }
		 authorizationInfo.addStringPermissions(list);

直接不验证授权,点那都可以访问。

有效情况:手动添加权限码

       Set<String> perring=new HashSet<>();
		 perring.add("aa");
		 perring.add("bb");
		 authorizationInfo.addStringPermissions(perring);

在排除配置错误情况下:检查表设计问题,我的权限码设计模式是

system
system:role
system:function
system:user
system:user:update

我检查很久终于发现:在shiro中授权识别是默认加*的。
比如:你的权限中含有:system 那么就相当于 system : * 。
产生的效果就是 你可以访问 所有以 system开头的权限。

查阅文章:权限控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值