一、什么是Shiro

Apache Shiro是一个强大、灵活、开源的安全框架,它支持用户认证、权限控制、企业会话管理以及加密等。

Apache Shiro的第一个也是最重要的一个目标就是易于使用和理解。对应用程序做安全管理常常很复杂,甚至很痛苦,但是实际上完全可以避免。一个好的安全安全管理框架应该能够将复杂度隐藏在框架内部,对外提供简洁、直观的API,以便用户可以很简单的给应用添加安全控制。

下面是Apache Shiro能够提供给我们的一些特性:

#,做用户身份认证;

#,做访问权限控制,比如:

#,这个用户是否被赋予了某个角色;

#,这个用户是否有权限做某件事情;

#,可以在任何环境下使用用户会话管理,即便没有web或者ejb容器也可以;

#,可以整合多种类型的用户权限数据(比如关系数据库、LDAP等)到一个用户视图界面;

#,支持单点登录(Single Sign On SSO);

#,支持 记住秘密 服务。

Shiro尽力为各种应用程序的环境来达成以上的目标——从简单的命令行程序到大型企业应用,不要求支持任何第三方的框架、容器或者应用服务器。当然,Shiro会尽力与这些环境集成,但是Shiro的运行绝对不会依赖于这些环境。

二、Apache Shiro的特性

Shiro的特性很多,下图展示了Shiro的架构,从中我们可以了解到Shiro聚焦在哪里,并且我们这个系列的文档也是按照类似的结构来组织。

 

Shiro聚焦与应用程序安全领域的四大基石:认证、授权、会话管理和保密。

#,认证,也叫作登录,用于验证用户是不是他自己所说的那个人;

#,授权,也就是访问控制,比如用于决定“谁”是否有权限访问“什么”;

#,会话管理,管理用户相关的会话,即使在非web和ejb的环境下也支持;

#,保密,使用特性加密算法来保证用户数据的安全性,同时还要保证用起来够简单;

同时Shiro还提供了其他特性来在不同的应用程序环境下使用强化以上的四大基石:

#,Web支持:Shiro的web相关的API简化了web应用安全控制;

#,缓存,在Shiro中,缓存是一等公民,用于保证用户认证和权限控制的性能;

#,测试,支持可测试性,以便用户可以方便的对安全相关代码编写单元测试和集成测试;

#,记住密码,可以跨会话的记住用户的身份信息,以便只有在一些强制性的场合才需要登录。

官方文档:http://shiro.apache.org/introduction.html

Apache Shiro系列一,概述 —— 初识的更多相关文章

  1. Apache Shiro系列三,概述 —— 10分钟入门

     一.介绍 看完这个10分钟入门之后,你就知道如何在你的应用程序中引入和使用Shiro.以后你再在自己的应用程序中使用Shiro,也应该可以在10分钟内搞定. 二.概述 关于Shiro的废话就不多说了 ...

  2. Apache Shiro系列之五,概述 —— 配置

    Shiro设计的初衷就是可以运行于任何环境:无论是简单的命令行应用程序还是复杂的企业集群应用.由于运行环境的多样性,所以有多种配置机制可用于配置,本节我们将介绍Shiro内核支持的这几种配置机制.   ...

  3. Apache Shiro系列四,概述 —— Shiro的架构

    Shiro的设计目标就是让应用程序的安全管理更简单.更直观.     软件系统一般是基于用户故事来做设计.也就是我们会基于一个客户如何与这个软件系统交互来设计用户界面和服务接口.比如,你可能会说:“如 ...

  4. Apache Shiro系列(1)

    Apache Shiro是啥呢,安全框架. 360百科是这么描述的:        Apache Shiro(日语"堡垒(Castle)"的意思)是一个强大易用的Java安全框架, ...

  5. Apache Shiro系列教程之二:十分钟上手Shiro

    在本教程中,我们会写一个简单的.仅仅输出一些内容命令行程序,从而对Shiro有一个大体的感觉. 一.准备工作 本教程需要Java1.5+,并且我们用Maven生成项目,当然Maven不是必须的,你也可 ...

  6. Apache Shiro系列二,概述 —— 基本概念

    做任何事情,首先要双方就一些概念的理解达成一致,这样大家就有共同语言,后续的沟通效率会高一些. #,Authentication,认证,也就是验证用户的身份,就是确定你是不是你,比如通过用户名.密码的 ...

  7. Apache Shiro系列教程之三:Shiro的结构

    Shiro的设计目标是简化应用的安全管理工作.软件通常是以用户为基础设计的.也就是说,我们经常是根据用户是怎样和我们的软件交互的来设计相关的用户接口.比如,你可能会说"如果是已经登录的用户与 ...

  8. JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作

    1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...

  9. Apache Shiro(一)-登录认证和权限管理初识

    What is Apache Shiro? Apache Shiro是一个功能强大.灵活的,开源的安全框架.它可以干净利落地处理身份验证.授权.企业会话管理和加密. Apache Shiro的首要目标 ...

随机推荐

  1. javascript是判断对象是否是数组

    JS中的数据类型: 2大类 原始类型:值保存在变量本地的数据类型 5种:Number String Boolean undefined null Number:8bytes 舍入误差-->四舍五 ...

  2. CSS中Position 的用法详解。

    记得一年前,到一家公司面试的时候,问我position有哪几个属性,我憋半天才回答出2个,大家估计都清楚,就是我们经常用到的2个(relative,absolute). 最近又用到了好多,深入研究了下 ...

  3. 【转载】Oracle递归查询:使用prior实现树操作【本文出自叶德华博客】

    本文标题:Oracle递归查询:使用prior实现树操作 本文链接:http://yedward.net/?id=41 本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处. Oracle ...

  4. CSS3过渡详解-遁地龙卷风

    第二版 0.环境准备 (1)过渡需要浏览器的支持,使用这些属性要加上浏览器厂商的前缀,我用的chrome49已经不需要前缀了, -o- Opera -webkit- Safari.Chrome -mo ...

  5. IOS开发基础知识--碎片38

    1:FCUUID获取设备标识的运用 a:作者 githun地址 https://github.com/fabiocaccamo/FCUUID 因为里面还用到作者的另外一个类UICKeyChainSto ...

  6. Android Log Tag含义

    在分析Android问题的时候重要的手段之一就是分析log,在events.log中有很多系统log,其中有些log的含义并不是很了解,下面就是从安卓源码中得到的系统log的tag. 关于Tag的说明 ...

  7. 【iOS】在Swift中使用JSONModel

    前言 首先所有的Model还是使用oc来写——看到这一句是不是想关网页了- - #,在swift里面直接写一直报错所以就将就用oc来写了,这里主要是分享一下搭配Alamofire使用的经验. 声明 欢 ...

  8. java设计模式 模板方法模式Template Method

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己 ...

  9. python之很好的网站

    1.python官方开发者文档查询和python下载网站 2.

  10. pygame开发PC端微信打飞机游戏

    pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件gam ...