zoukankan      html  css  js  c++  java
  • SpringBoot集成Apache Shiro

    转载:https://www.cnblogs.com/sankt/p/9278886.html

    介绍demo项目前,简单说明一下Shiro框架的特性。

    1.  Apache Shiro Features

     

     

    从上图可以看出Shiro具备应用程序安全框架的四大基石”:身份验证、授权、会话管理和密码。

    Authentication有时被称为‘登录’,这是需要明确用户是谁

    Authorization访问控制,即确定‘谁’对‘什么’有访问权限。

    Session Management管理特定用户的会话,即使在非web或EJB应用程序中也是如此。

    Cryptography使用加密算法保持数据安全,但易于使用。

    在不同的应用程序环境中,还有更多的特性来支持和增强这些关注点,特别是:

    Web SupportShiro的Web支持API帮助轻松地保护web应用程序。

    Caching缓存是ApacheShiro的API中的第一等公民,以确保安全操作同时保持快速和高效。

    ConcurrencyApacheShiro支持具有并发特性的多线程应用程序。

    Testing提供测试支持,以帮助编写单元和集成测试,并确保代码如预期的安全。

    Run as允许用户假定另一个用户的身份(如果允许的话)的特性,有时在管理场景中很有用。

    Remember Me记住用户在会话中的身份,这样他们就只需要在强制的情况下输入口令登录。

    2. High-Level Overview

    Shiro的体系结构有三个主要概念:Subject、SecurityManager和Realms。下图展现了它的运行原理,

    主题:主题本质上是当前正在执行的用户。虽然“用户”这个词通常意味着一个人,一个主题可以是一个人,但它也可以代表一个第三方服务、守护进程帐户、cron作业或任何类似的东西-基本上是任何当前与软件交互的东西。Subject实例都绑定到(并且需要)一个SecurityManager。当与主题交互时,这些交互转化为与SecurityManager的特定主题交互。

    SecurityManagerSecurityManager是Shiro体系结构的核心,它将其内部安全组件协调在一起形成一个对象图。然而,一旦为应用程序配置了SecurityManager及其内部对象图,它通常会被单独使用,应用程序开发人员将几乎所有的时间都花在Subject API上。当与一个主题交互时,实际上是幕后的SecurityManager为任何主题安全操作做了所有繁重的工作。

    领域:领域充当Shiro和应用程序安全数据之间的“桥梁”或“连接器”。当涉及到实际与用户帐户等安全相关的数据交互以执行身份验证(登录)和授权(访问控制)时,Shiro从一个或多个为应用程序配置的领域中查找数据。从这个意义上说,领域本质上是一个特定于安全的DAO:它封装数据源的连接细节,并根据需要将相关数据提供给Shiro。配置Shiro时,必须指定至少一个用于身份验证和/或授权的域。SecurityManager可以配置多个Realm,但至少需要一个。Shiro提供了开箱即用的领域,以连接到许多安全数据源(也称为目录),如LDAP、关系数据库(JDBC)、INI和属性文件等文本配置源。

    3. Detailed Architecture

  • 相关阅读:
    CodeForces-455A Boredom
    UVA-12627 Erratic Expansion
    汉诺塔系列问题
    CodeForces-999D Equalize the Remainders
    CodeForces-1061D TV Shows
    CodeForces-1061B Views Matter
    UVALive-7261 Xiongnu's Land
    HDU-4990 Reading comprehension
    -------------------------------用MyBatis处理表与表之间的关联关系----------------------------------
    -------------计算机里面算法-----------
  • 原文地址:https://www.cnblogs.com/springcloud/p/9278944.html
Copyright © 2011-2022 走看看