Shiro 和 Spring Security的区别

一、Shiro简介

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

       1. Authentication 认证:验证是哪个用户登录;

       2. Authorization 授权:决定当前登录用户是否有权限去访问受保护的资源;

       3. Cryptography:通过加密算法保护数据安全;

       4. Session Management: 当用户使用你的应用是自身携带的数据;

       5. Web Integration: 虽然Shiro是设计用来确保任何基于JVM的应用,但是很多时候是用来保护Web应用。

       6. Integrations:可以很好的集成其他的技术和框架。

二、Shiro三大核心组件

        1.Realms

                realm:域,领域,相当于数据源,通俗意义的DAO层,通过realm存取认证、授权相关数据。

        2.Subject

                subject:主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。

        3.SecurityManager

                securityManager:安全管理器,主体进行认证和授权都是通过securityManager进行,是shiro的心脏。

三、Shiro四大核心功能:Authentication,Authorization,Cryptography,Session Management

四、Spring Security

        Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。它是一个轻量级的安全框架,它确保基于Spring的应用程序提供身份验证和授权支持。它与Spring MVC有很好地集成,并配备了流行的安全算法实现捆绑在一起。安全主要包括两个操作“认证”与“验证”(有时候也会叫做权限控制)。“认证”是为用户建立一个其声明的角色的过程,这个角色可以一个用户、一个设备或者一个系统。“验证”指的是一个用户在你的应用中能够执行某个操作。在到达授权判断之前,角色已经在身份认证过程中建立了。

五、Spring Security划分

        1.Web/Http 安全:这是最复杂的部分。通过建立 filter 和相关的 service bean 来实现框架的认证机制。当访问受保护的 URL 时会将用户引入登录界面或者是错误提示界面。

        2.业务对象或者方法的安全:控制方法访问权限的。

        3.AuthenticationManager:处理来自于框架其他部分的认证请求。

        4.AccessDecisionManager:为 Web 或方法的安全提供访问决策。会注册一个默认的,但是我们也可以通过普通 bean 注册的方式使用自定义的 AccessDecisionManager。

        5.AuthenticationProvider:AuthenticationManager 是通过它来认证用户的。

        6.UserDetailsService:跟 AuthenticationProvider 关系密切,用来获取用户信息的。

六、Shiro和Spring Security比较

1.Shiro比Spring Security更容易使用,实现和最重要的理解;

2.Spring Security因其品牌名称这一唯一原因而知名;

3.Spring Security安装较为麻烦;

4.Spring Security拥有好的社区支持;

5.Apache Shiro在Spring Security处理密码学方面有一个额外的模块;

6.Spring Security若结合spring则作为首选,但项目不考虑spring时,可以不考虑Spring Security;

7. Shiro 功能强大、且 简单、灵活。是Apache 下的项目比较可靠,且不跟任何的框架或者容器绑定,可以独立运行。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值