Shiro概述以及核心概念

Shiro概述以及核心概念

Shiro概述

Apache Shiro是Java的一个安全框架
       Shiro是一个强大的简单易用的Java安全框架,主要用来更便捷的认证、授权、加密、会话管理、与Web集成、缓存等
       Shiro使用起来小而简单
       spring中有spring security ,是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。 
      shiro不依赖于spring,shiro不仅可以实现web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,
      shiro属于轻量框架,越来越多企业项目开始使用shiro. 

Shiro核心概念

核心类:

Authentication
    身份认证/登录,验证用户是不是拥有相应的身份;
Authorization
    授权,即权限验证,验证某个已认证的用户是否拥有某个权限;

主要概念:

Subject 
    当前的操作用户:可以是人、爬虫、当前跟软件交互的东西。 在shiro当中我们可以统称"用户";
    在代码的任何地方,都能轻易的获得Shiro Subject。
    一旦获得Subject就能,登录、退出、访问会话、执行授权检查等 
SecurityManager
    SecurityManager管理所有用户的安全操作
    引用了多个内部嵌套安全组件,是Shiro框架的核心
    可以把它看成DispatcherServlet(springmvc)前端控制器。
    用于调度各种Shiro框架的服务
Realms
    Realms是用户的信息认证器和用户的权限认证器
    执行认证(登录)和授权(访问控制)时,Shiro会从应用配置的Realm中查找很多内容
    Realm 可以理解为读取用户信息、角色及权限的 DAO
    SecurityManager要验证用户身份与权限,那么它需要从Realm获取相应的信息进行比较以确定用户身份是否合法;
    可以把Realm看成DataSource,即安全数据源。

Shiro架构:

整体架构图:


    
subject:主体
    主体可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。 
securityManager:安全管理器
    主体进行认证和授权都是通过securityManager进行。 
authenticator: 认证器
    主体进行认证最终通过authenticator进行的。 
authorizer: 授权器
    主体进行授权最终通过authenticator进行的。 
sessionManager:会话管理
    web应用中一般是用web容器对session进行管理,shiro也提供一套session管理的方式。 
sessionDao:
    通过sessionDao管理session数据, 
cacheManager: 缓存管理器
    主要对session和授权数据进行缓存,比如将授权数据通过cacheManager进行缓存管理,和 ehcache整合对缓存数据进行管理。 
realm: 领域
    相当于数据源,通过realm存取认证、授权相关数据。 
cryptography: 密码管理
    提供了一套加密/解密的组件,方便开发。比如 提供常用的散列、加/解密等功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值