思考与总结:安全框架对比 shiro vs spring

阅读: 评论:0

思考与总结:安全框架对比 shiro vs spring

思考与总结:安全框架对比 shiro vs spring

如果你还不了解shiro或security,建议查看如下文章: 

安全框架shiro的基础知识_陈海龙的格物之路-CSDN博客通过阅读这篇文章,你可以了解到shiro是什么、shiro的架构、shiro如何支持web环境的安全验证等。,spring security提供了这两种能力,本文讲述security的设计思路。

目标

shiro和spring-security都是安全框架,两者有哪些相同点和差异呢?结合自己的了解,在多个维度进行了对比。

使用场景差异

  • security 仅支持web场景
  • shiro 支持web和非web场景

与spring关系差异

  • security 属于spring且是spring提供的一个能力
  • shiro 属于apache,与spring无关,可与spring整合

均提供扩展性

  • 如何获取用户信息、如何获取权限信息等都可自定义 

web场景对比

实现原理有相似之处

  • security filter (aop)
  • shiro filter (aop) 
  • 责任链

request合法性校验差异

  • shiro仅针对url path进行检查,拒绝分号、反斜杆、非ascii码字符
  • security针对header、url path、param等进行检查 

防止攻击的能力差异

  • shiro 没有提供
  • security 针对常见攻击提供支持 

身份认证

  • 均支持,支持自定义login-url,开发者仅需提供获取当事人的方式、密码处理方式
  • 均有提供身份认证成功后置处理扩展点
  • shiro没有提供csrfToken 

授权验证

均支持配置形式

均支持配置形式,但是只适合角色权限较少的系统。 

在SpringBean的方法上使用授权验证的注解

  • shiro支持(RequiresPermissionsRequiresRoles)
  • security支持(PrexxxPostxxx)

硬编码方式

  • shiro支持,直接调用subjectAPI。
  • security未提供API,但开发者可自己实现(获取userDetails,验证权限) 

统一进行url授权验证

  • 均为提供现成实现
  • security 可自定义访问控制管理器和投票者
  • shiro没有提供扩展,需要自己写filter或interceptor,其中使用subjectAPI。 

支持权限粒度差异

  • security,支持url粒度、方法粒度、数据粒度。
  • shiro,支持url粒度、方法粒度、数据粒度。 

选型

一切从系统出发:是否使用spring,是否web系统,是否为controller方法维度的权限粒度,是否需要防止网络攻击?

本文发布于:2024-01-29 03:11:41,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170646910512279.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:框架   shiro   spring
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23