Fork me on GitHub

shiro介绍

在使用shiro之前,我们先要了解一下shiro是什么东西,可以实现什么功能。

什么是shiro

  • Apache灵活强大的开源安全框架
  • 实现认证,授权,企业会话管理,安全加密等功能

    shrio和spring security的区别

    shiro
  • 简单灵活
  • 可脱离spring
  • 粒度较粗

spring security

  • 较为复杂,笨重
  • 不可以脱离spring单独存在
  • 粒度更细(但是在实际编程中没有很好的体现出来)

所以使用shiro来实现安全认证更好一些

shiro整体架构

下面通过一张图来了解shiro整体架构
shiro整体架构
其中,红色框框部分可以理解为用户。
而用户下面通过security manager来管理用户和权限
security manager各个部分的介绍:

  • Authenticator(认证器):负责管理用户登入登出
  • Authorizer(授权器):负责赋予用户权限
  • Session Manager:可以在不借助其他web容器时使用session
  • Session DAO:提供session操作(增删改查)
  • Cache Manager:进行缓存管理(缓存角色数据和权限数据)
  • Pluggable Realms:shiro和数据源之间的桥梁(通过Realms获取数据库信息)
  • Cryptography:负责数据加密工作