思考与总结:安全框架对⽐shirovsspring-security 如果你还不了解shiro或security,建议查看如下⽂章:
⽬标
shiro安全框架
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⽀持(RequiresPermissions\RequiresRoles)
security⽀持(Prexxx\Postxxx)
硬编码⽅式
shiro⽀持,直接调⽤subjectAPI。
security未提供API,但开发者可⾃⼰实现(获取userDetails,验证权限)
统⼀进⾏url授权验证
均为提供现成实现
security 可⾃定义访问控制管理器和投票者
shiro没有提供扩展,需要⾃⼰写filter或interceptor,其中使⽤subjectAPI。
⽀持权限粒度差异
security,⽀持url粒度、⽅法粒度、数据粒度。
shiro,⽀持url粒度、⽅法粒度、数据粒度。
选型
⼀切从系统出发:是否使⽤spring,是否web系统,是否为controller⽅法维度的权限粒度,是否需要防⽌⽹络攻击?

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