几行代码实现shiro超级管理员的功能

在项目开发中,需要实现shiro的超级管理员功能。 但网上查了一下相关实现,发现很多实现都是在用户获取权限资源时,如果是超级管理员,就将系统的全部权限,角色赋给用户。 我个人觉得该方法比较复杂,取权限资源时,还要特别为超级管理员做特殊的处理。实际项目中,有没有更简单的方法呢? 答:有的,只需要很简单的实现. 实现方式如下: 在集成shiro时,我们都需要继承AuthorizingRealm该类,实现只需要重写里面的isPermitted及hasRole方法即可。 示例代码如下:

public class MyShiroRealm extends AuthorizingRealm {
  @Override
   public  boolean isPermitted(PrincipalCollection principals, String permission){
        SecurityUser user = (SecurityUser)principals.getPrimaryPrincipal();
       return user.isAdmin()||super.isPermitted(principals,permission);
   }
    @Override
    public boolean hasRole(PrincipalCollection principals, String roleIdentifier) {
        SecurityUser user = (SecurityUser)principals.getPrimaryPrincipal();
       return user.isAdmin()||super.hasRole(principals,roleIdentifier);
    }
    。。。。
    }

该方法如此的简单,比我们用什么拦截器的都简单方便. 注意,该方法只适用于使用注解RequiresRoles,RequiresPermissions的权限拦截!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

神技能 | 手把手教您把CentOS7服务器变成上网路由器

*声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

46040
来自专栏Netkiller

Linux 系统安全与优化配置

Linux 系统安全与优化配置 Linux 系统安全问题 ---- 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验...

50750
来自专栏FreeBuf

主动欺骗蜜罐系统Beeswarm简介

Beeswarm是一个主动蜜罐系统,通过部署一些模拟真实用户的节点与蜜罐系统通信,从而引诱窃听了这些会话的攻击者攻击蜜罐系统,以捕获发现攻击。 一、介绍 蜜罐系...

33380
来自专栏Python、Flask、Django

解决phpstorm调试网页出现 502 bad getaway

27840
来自专栏L宝宝聊IT

Linux防火墙基础与编写防火墙规则

36070
来自专栏Golang语言社区

Leaf 游戏服务器框架简介

下载地址: https://github.com/name5566/leaf/blob/master/TUTORIAL_ZH.md Leaf 游戏服务器框架简介...

71480
来自专栏微信公众号:Java团长

Shiro的原理及Web搭建

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应...

9720
来自专栏Web项目聚集地

Java安全框架「shiro」

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应...

25830
来自专栏Netkiller

Linux 系统安全与优化配置

Linux 系统安全与优化配置 Linux 系统安全问题 ---- 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验...

35440
来自专栏散尽浮华

Linux下FastDFS分布式存储-总结及部署记录

一、分布式文件系统介绍 分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System。一...

61070

扫码关注云+社区

领取腾讯云代金券