shiro简介

shiro简介

一. 为什么使用shiro

Apache Shiro是Java的一个安全框架,在没使用Shiro 之前,做登录,权限等等都是五花八门的代码,不同系统的做法有可能千差万别。但是使用 Shiro 这个安全框架之后,大家做权限的方式都一致化了,这样的好处就是你的代码看起来容易也好理解。

二. shiro可以做什么

可用于 登录验证、权限验证、密码加密、会话管理、缓存管理、支持多线程的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;还可以允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;还可以很容易的集成web环境

三. shiroAPI中的重要对象

  • 主体(Subject)
    代表了当前“用户”,是一个抽象概念,所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者
  • 安全管理器(SecurityManager)
    即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject;可以看出它是Shiro的核心,它负责与后边介绍的其他组件进行交互,如果学习过SpringMVC,你可以把它看成DispatcherServlet前端控制器
  • 域(Realm)
    Shiro从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource,即安全数据源。
  • 认证(Authentication)
    身份认证/登录,验证用户是不是拥有相应的身份
  • 授权(Authorization)
    权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限
  • 加密(Cryptography)
    保护数据的安全性,如密码加密存储到数据库,而不是明文存储
  • 会话管理(SessionManager)
    用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如web环境的
  • 会话数据访问(SessionDAO)
    用于会话的CRUD,比如我们想把Session保存到数据库,那么可以实现自己的SessionDAO,通过如JDBC写到数据库;比如想把Session放到Redis中,可以实现自己的Redis SessionDAO;另外SessionDAO中可以使用Cache进行缓存,以提高性能
  • web集成(WebSupport)
    可以非常容易的集成到Web环境
  • 缓存管理(CacheManager)
    管理如用户、角色、权限等的缓存的;因为这些数据基本上很少去改变,放到缓存中后可以提高访问的性能
  • 记住我(RememberMe)
    记住我,即一次登录后,下次再来的话不用登录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值