一、什么是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. 使用setTimeout模拟setInterval效果

    由于现在部分浏览器基于对系统性能的优化,在使用setInterval的时候,在页面没有获得关注的状态,浏览器可以会自动将setInterval终端,等到该页面重新获得关注时再开启.这样就会使得一些基于 ...

  2. iOS Block简介

    Block是对象,它封装了一段代码,这段代码可以在任何时候执行.block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inli ...

  3. Java Web中请求转发和请求包含

    1.都是在一个请求中跨越多个Servlet 2.多个Servlet在一个请求中,他们共享request对象.就是在AServle中setAttribute()保存数据在BServlet中由getAtt ...

  4. Android 缓存

    1.Android缓存机制&一个缓存框架推荐 http://blog.csdn.net/shakespeare001/article/details/51695358 2.ASimpleCac ...

  5. shell脚步传参

    linux系统除了提供位置参数还提供内置参数,内置参数如下: $# ----传递给程序的总的参数数目 $? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非 ...

  6. React Native知识8-WebView组件

    创建一个原生的WebView,可以用于访问一个网页.可以加载一个URL也可以加载一段html代码: 一:属性 1:iosallowsInlineMediaPlayback bool 指定HTML5视频 ...

  7. 设置Hyper V

    1.打开服务器管理器 2.添加角色和功能 3.安装类型 -> 基于角色或基于功能的安装 4.服务器选择 -> 下一步 5.服务器角色 勾选"Hyper V"

  8. iOS开发之功能模块--关于自定义TabBar条

    只上项目中用到的代码: 1.实现重写TabBar的TabBarItem,然后在中间额外加一个按钮. #import <UIKit/UIKit.h> @interface BikeTabBa ...

  9. Android 四大组件之再论BroadCast

    BroadCast 是android提供的跨进程通讯的有一利器. 1.异步执行onReceiver @Nullable public abstract Intent registerReceiver( ...

  10. .NET应用架构设计—表模块模式与事务脚本模式的代码编写

    阅读目录: 1.背景介绍 2.简单介绍表模块模式.事务脚本模式 3.正确的编写表模块模式.事务脚本模式的代码 4.总结 1.背景介绍 要想正确的设计系统架构就必须能正确的搞懂每个架构模式的用意,而不是 ...