网易首页 > 网易号 > 正文 申请入驻

安全管理框架,用Shiro还是用Spring Security?

0
分享至

开发Java应用项目的时候,安全管理通常来讲是必不可少的功能。常用的安全管理框架有Apache Shiro和Spring Security,那么作为一名开发人员的话,该如何选择自己的权限管理框架呢?

首先我们来看一看两者的区别。

Apache Shiro是一个强大且易用的Java安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密等功能。他的API也非常易于理解的API,因此,对于初学者来说,非常容易上手。

它的特点包括:

· 易于理解的 Java Security API;

· 简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos,ActiveDirectory等);

· 对角色的简单的签权(访问控制),支持细粒度的签权;

· 支持一级缓存,以提升应用程序的性能;

· 内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境;

· 异构客户端会话访问;

· 非常简单地加密 API;

· 不跟任何的框架或者容器捆绑,可以独立运行。

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC(控制反转),DI( 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。它与Spring MVC能够很好地集成,并配备了流行的安全算法实现捆绑在一起。Spring Security在我们进行用户认证以及授予权限的时候,通过各种各样的拦截器来控制权限的访问,从而实现安全。

从功能上来讲,shiro能实现的,Spring Security 基本都能实现,依赖于Spring体系,但是好处是Spring全家桶的亲儿子,集成上更加契合,在使用上,比shiro略负责。但是Shiro比Spring Security更容易使用,也就是实现上简单一些,同时基本的授权认证Shiro也基本够用。

从社区活跃度来说,Spring Security社区支持度更高,Spring社区的亲儿子,支持力度和更新维护上有优势。相比之下Shiro的支持度就差了一点,但是依然还是有很多开发者在为Shiro做出贡献。

而Shiro 功能强大、简单、灵活。不跟任何的框架或者容器绑定,可以独立运行。因此对于非Spring的项目,Shiro兼容性更高一些。

因此,从比较上来讲,两者的区别不是很大。使用的时候,如果开发框架全部采用Spring全家桶的话,那么用Spring Security会比较合适一些。而对于刚开始接触安全管理框架或者是不用Spring全家桶的话,用Shiro比较好一些。

但是,同时我们也应该注意到,Shiro和Spring Security都已经诞生了十几年了,随着技术的演进发展,其基本框架也产生了一定局限性,尤其是对于前后端分离的框架来说,需要多做很多兼容性的工作。

在这种情况下,新的Java权限管理框架Sa-Token就应运而生了。

Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题。

Sa-Token 的 API 设计非常简单,以登录认证为例,只需要两行代码就可以完成了:

// 在登录时写入当前会话的账号id

StpUtil.login(10001);

// 然后在需要校验登录处调用以下方法:

// 如果当前会话未登录,这句代码会抛出 `NotLoginException` 异常

StpUtil.checkLogin();

再比如权限认证,如下代码即可完成(只有具备 user:add 权限的会话才可以进入请求):

@SaCheckPermission("user:add")

@RequestMapping("/user/insert")

public String insert(SysUser user) {

return "用户增加";

看吧,是不是很简单,相比起Shrio和Spring Security繁琐来说,简单是懒人的福音。事实上,对于绝大部分的权限控制功能Sa-Token都能够用一句话来完成。就像下面一样。

StpUtil.login(10001); // 标记当前会话登录的账号id

StpUtil.getLoginId(); // 获取当前会话登录的账号id

StpUtil.isLogin(); // 获取当前会话是否已经登录, 返回true或false

StpUtil.logout(); // 当前会话注销登录

StpUtil.kickout(10001); // 将账号为10001的会话踢下线

StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回true或false

StpUtil.hasPermission("user:add"); // 查询当前账号是否含有指定权限, 返回true或false

StpUtil.getSession(); // 获取当前账号id的Session

StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session

StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值

StpUtil.login(10001, "PC"); // 指定设备标识登录,常用于“同端互斥登录”

StpUtil.kickout(10001, "PC"); // 指定账号指定设备标识踢下线 (不同端不受影响)

StpUtil.openSafe(120); // 在当前会话开启二级认证,有效期为120秒

StpUtil.checkSafe(); // 校验当前会话是否处于二级认证有效期内,校验失败会抛出异常

StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号

因此,技术发展日新月异,作为一名程序员,要紧跟时代的发展,才能使自己不至于落后。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
汪峰官宣新恋情,本以为森林北才是赢家,谁料马伊琍成最大获益人

汪峰官宣新恋情,本以为森林北才是赢家,谁料马伊琍成最大获益人

十二生肖运势分析
2024-11-30 08:50:03
155分惨败后再输155分!中国篮坛惊现2大惨败:输得没脾气了?

155分惨败后再输155分!中国篮坛惊现2大惨败:输得没脾气了?

篮球快餐车
2024-12-01 00:59:13
这下闹大了!极狐员工举报高管是美国人,隐瞒身份渗透国家部门!

这下闹大了!极狐员工举报高管是美国人,隐瞒身份渗透国家部门!

青青子衿
2024-12-01 04:07:23
外交部发言人就美国批准向中国台湾地区出售3.85亿美元武器答记者问

外交部发言人就美国批准向中国台湾地区出售3.85亿美元武器答记者问

界面新闻
2024-12-01 11:05:03
赏心悦目!33岁格里兹曼世界级过人+惊艳破门,现场视角,太牛了

赏心悦目!33岁格里兹曼世界级过人+惊艳破门,现场视角,太牛了

侧身凌空斩
2024-12-01 06:02:10
清华劳东燕:要有独立的判断力,不轻信任何灌输的东西,不受人所惑

清华劳东燕:要有独立的判断力,不轻信任何灌输的东西,不受人所惑

三言四拍
2024-12-01 09:07:31
俄军大反攻已到了绝路,再不叫停人肉冲锋,恐怕莫斯科都保不住

俄军大反攻已到了绝路,再不叫停人肉冲锋,恐怕莫斯科都保不住

娱乐圈的哔哔王
2024-11-30 22:55:39
多地设“蜗牛奖”,对“躺平式”干部出真招

多地设“蜗牛奖”,对“躺平式”干部出真招

澎湃新闻
2024-11-30 23:00:55
女子将两斤泥鳅倒进下水道疏通管道 有点效果 泥鳅们还在努力

女子将两斤泥鳅倒进下水道疏通管道 有点效果 泥鳅们还在努力

闪电新闻
2024-11-21 11:59:18
美联储再次降息!12月1日,周末的第一大“利空”正式出炉!

美联储再次降息!12月1日,周末的第一大“利空”正式出炉!

风口招财猪
2024-12-01 00:55:54
俄罗斯想干啥?突然对中国某产品开征55%关税

俄罗斯想干啥?突然对中国某产品开征55%关税

小企鹅侃世界
2024-11-30 21:47:50
冯德莱恩:没想到欧盟98%的稀土、93%的镁、97%的锂竟然来自中国

冯德莱恩:没想到欧盟98%的稀土、93%的镁、97%的锂竟然来自中国

魏家东
2024-12-01 07:51:05
对话|李娜:不告诉孩子自己是球星,差点扔掉法网冠军奖杯

对话|李娜:不告诉孩子自己是球星,差点扔掉法网冠军奖杯

澎湃新闻
2024-11-30 16:42:40
一个超级好用的感冒药,流感、瘟疫都管用,300多年的中成药了,知道的人寥寥

一个超级好用的感冒药,流感、瘟疫都管用,300多年的中成药了,知道的人寥寥

神奇故事
2024-11-30 22:46:00
叙利亚必须救!攻其必救,美国也会

叙利亚必须救!攻其必救,美国也会

那山星火
2024-12-01 06:51:19
没企业敢和司马南合作,自己开始卖垃圾袋了?网友建议卖U形锁!

没企业敢和司马南合作,自己开始卖垃圾袋了?网友建议卖U形锁!

你食不食油饼
2024-12-01 04:09:08
清华男友拳打北航辅导员后续:是高考722分状元,女友照片被扒

清华男友拳打北航辅导员后续:是高考722分状元,女友照片被扒

派大星纪录片
2024-11-30 14:27:50
“不给6套房加1个亿,不搬”,钉子户张新国坚守14年,终败给现实

“不给6套房加1个亿,不搬”,钉子户张新国坚守14年,终败给现实

讯崽侃天下
2024-11-30 20:44:05
一航空公司被曝拖欠工资,飞行员送外卖补贴家用

一航空公司被曝拖欠工资,飞行员送外卖补贴家用

齐鲁壹点
2024-11-30 20:26:25
女网红太没底线,穿瑜伽裤登山,跟在后面的大哥全程不敢抬头

女网红太没底线,穿瑜伽裤登山,跟在后面的大哥全程不敢抬头

打麻将的仔
2024-12-01 08:42:30
2024-12-01 12:28:49
活在信息时代
活在信息时代
信息时代的技术与社会伦理
795文章数 796关注度
往期回顾 全部

科技要闻

我国首个商业航天发射场首发成功

头条要闻

深夜3分钟3人报警其中1个从美国打来 指向同一个地址

头条要闻

深夜3分钟3人报警其中1个从美国打来 指向同一个地址

体育要闻

两翼齐废,凯恩受伤,还好拜仁有他!

娱乐要闻

鹿晗直播回应被骂:不管怎么骂都开心

财经要闻

女首富,死刑!交出800亿,免死!

汽车要闻

科技是中国豪车梦的支点 腾势Z9走心试驾体验

态度原创

数码
手机
时尚
房产
公开课

数码要闻

埃隆·马斯克认可苹果 AirPods Pro 2 助听器功能 称其"够酷"

手机要闻

印度TWS市场分析,OPPO与realme成国产荣光

冬季外套搭配,没有比这更“傻瓜”的公式了!

房产要闻

大量甩地!114亿,4790亩!海南土地市场全面爆发!

公开课

一块玻璃,如何改变人类世界?

无障碍浏览 进入关怀版