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
不跟任何的框架或者容器绑定,可以独立运行