Shiro概念

ApacheShiro是一个功能强大且易于使用的java安全框架,提供了认证、授权、加密、会话管理。

Shiro的三大核心组件

  • Subject:即当前用户,在权限管理的应用程序中往往需要知道谁能够操作什么,谁拥有该程序的权利,Shiro中则需要通过Subject来提供基础的当前用户信息。另外Subject不仅仅代表某个用户,与当前交互的任何东西都可看成Subject。其次,Subject要绑定到SecurityManager上,与Subject交互实际上就是转换为SecurityManager的交互。

  • SecurityManager:即所有Subject的管理者,这是Shiro的核心组件,可以把它看成一个Shiro框架的全局组件,用于调度各种Shiro框架服务。

  • Realm:领域,域,相当于数据源,通过realm存取认证、授权相关数据。

——————————————————-优美线条————————————————————

  • authenticator:认证器,主体进行认证最终通过authenticator进行的
    |—-Authorizer:授权器,主体进行授权最终同工过authorizer进行的
    |—-session manager:web应用中一般是用web容器对session进行管理。shiro也提供一套session管理机制。
    |—-sessionDao:通过这个来管理session数据。针对个性化的session数据的存储需要用到sessionDAO
    |—-cache manager:缓存管理器,主要对session和授权数据进行缓存。将授权数据通过cache manager进行缓存管理。

、Shiro的优点

  • 简单的身份认证,支持多种数据源;

  • 对角色的简单的授权,支持细粒度的授权(方法级);

  • 支持一级缓存,以提升应用程序的性能;

  • 内置的基于POJO企业会话管理,适用于Web以及非Web环境

  • 非常简单的加密API

  • 不跟任何的框架或者容器绑定,可以独立运行