zoukankan      html  css  js  c++  java
  • Shiro简介

    1.简述

      Shiro是apache旗下一个开源安全框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证、权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。

      官网地址https://github.com/apache/shiro

      Shiro的优点

    • 功能强大、 简单、灵活, 不跟任何的框架或者容器绑定,可以独立运行。

      Shiro的缺点

    • 社区不灵活,本身并没有实现缓存,需自行实现。

      Shiro特点

    • 易于理解的 Java Security API。
    • 简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos,ActiveDirectory 等)。
    • 对角色的简单的签权(访问控制),支持细粒度的签权。
    • 支持一级缓存,以提升应用程序的性能。
    • 内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境。
    • 异构客户端会话访问。
    • 非常简单的加密API。
    • 不跟任何的框架或者容器捆绑,可以独立运行。

    2.Shiro概要架构

      Shiro架构包含三个主要的理念

    • Subject:主体对象,负责提交用户认证和授权信息。
    • SecurityManager:安全管理器,负责认证,授权等业务实现。
    • Realm:领域对象,负责从数据层获取业务数据。

    3.Shiro详细架构

    核心对象:认证管理对象、授权管理对象、会话管理对象、缓存管理对象、加密管理对象、realm管理对象(领域对象:负责处理认证和授权领域的数据访问问题)。

    subject:与软件交互的一个特定实体(用户、第三方服务)。

    SecurityManager(安全管理):Shiro的核心,用来协调管理组件工作。

    Authenticator(认证管理):负责执行认证操作。

    Authorizer(授权管理):负责执授权检测。

    SessionManager(会话管理):负责创建并管理用户Session生命周期,提供一个强有力的Session体验。

    SessionDAO:代表SessionManager执行Session持久(CRUD)动作,它允许任何存储的数据挂接到Session管理基础上。

    CacheManager(缓存管理):提供创建缓存实例和管理缓存生命周期的功能。

    Cryptography(加密管理):提供了加密方式的设计及管理。

    Realms(领域对象):Shrio和应用程序安全数据之间的桥梁。

    4.shiro认证过程

      认证步骤说明

    • 首先调用Subject.login(token)进行登录,其会自动委托给SecurityManager,调用之前必须通过SecurityUtils.setSecurityManager()设置。
    • SecurityManager负责真正的身份验证逻辑,它会委托给Authenticator进行身份验证。
    • Authenticator才是真正的身份验证者,Shiro API中核心的身份认证入口点,此处可以自定义插入自己的实现。
    • Authenticator可能会委托给相应的AuthenticationStrategy进行多Realm身份验证,默认ModularRealmAuthenticator会调用AuthenticationStrategy进行多Realm身份验证。
    • Authenticator会把相应的token传入Realm,从Realm获取身份验证信息,如果没有返回或抛出异常表示身份验证失败了。此处可以配置多个Realm,将按照相应的顺序及策略进行访问。

    5.用户访问流程

  • 相关阅读:
    【SAS NOTE】OUTPUT
    【SAS NOTES】_NULL_
    【SAS NOTE】sas 9.2 安装
    【SAS NOTE】FREQ
    纯数学教程 Page 203 例XLI (1)
    纯数学教程 Page 203 例XLI (3)
    纯数学教程 Page 203 例XLI (2)
    Prove Cauchy's inequality by induction
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
  • 原文地址:https://www.cnblogs.com/bl123/p/14216798.html
Copyright © 2011-2022 走看看